Fix get top billionaires BROKEN file
diff --git a/DIRECTORY.md b/DIRECTORY.md
index 8d1567465fbc..bcac340f3ce2 100644
--- a/DIRECTORY.md
+++ b/DIRECTORY.md
@@ -1220,6 +1220,7 @@
   * [Get Amazon Product Data](web_programming/get_amazon_product_data.py)
   * [Get Imdb Top 250 Movies Csv](web_programming/get_imdb_top_250_movies_csv.py)
   * [Get Imdbtop](web_programming/get_imdbtop.py)
+  * [Get Top Billionaires](web_programming/get_top_billionaires.py)
   * [Get Top Hn Posts](web_programming/get_top_hn_posts.py)
   * [Get User Tweets](web_programming/get_user_tweets.py)
   * [Giphy](web_programming/giphy.py)
diff --git a/web_programming/get_top_billionaires.py.disabled b/web_programming/get_top_billionaires.py
similarity index 72%
rename from web_programming/get_top_billionaires.py.disabled
rename to web_programming/get_top_billionaires.py
index 6a8054e26270..6f986acb9181 100644
--- a/web_programming/get_top_billionaires.py.disabled
+++ b/web_programming/get_top_billionaires.py
@@ -3,7 +3,7 @@
 This works for some of us but fails for others.
 """
 
-from datetime import datetime
+from datetime import UTC, datetime, timedelta
 
 import requests
 from rich import box
@@ -20,18 +20,31 @@
 )
 
 
-def calculate_age(unix_date: int) -> str:
+def calculate_age(unix_date: float) -> str:
     """Calculates age from given unix time format.
 
     Returns:
         Age as string
 
-    >>> calculate_age(-657244800000)
-    '73'
-    >>> calculate_age(46915200000)
-    '51'
+    >>> from datetime import datetime, UTC
+    >>> years_since_create = datetime.now(tz=UTC).year - 2022
+    >>> int(calculate_age(-657244800000)) - years_since_create
+    73
+    >>> int(calculate_age(46915200000)) - years_since_create
+    51
     """
-    birthdate = datetime.fromtimestamp(unix_date / 1000).date()
+    # Convert date from milliseconds to seconds
+    unix_date /= 1000
+
+    if unix_date < 0:
+        # Handle timestamp before epoch
+        epoch = datetime.fromtimestamp(0, tz=UTC)
+        seconds_since_epoch = (datetime.now(tz=UTC) - epoch).seconds
+        birthdate = (
+            epoch - timedelta(seconds=abs(unix_date) - seconds_since_epoch)
+        ).date()
+    else:
+        birthdate = datetime.fromtimestamp(unix_date, tz=UTC).date()
     return str(
         TODAY.year
         - birthdate.year

### Describe your change:
Fixes a `get_top_billionaires` and unmarks it as disabled

* [ ] Add an algorithm?
* [x] Fix a bug or typo in an existing algorithm?
* [ ] Documentation change?

### Checklist:
* [x] I have read [CONTRIBUTING.md](https://github.com/TheAlgorithms/Python/blob/master/CONTRIBUTING.md).
* [x] This pull request is all my own work -- I have not plagiarized.
* [x] I know that pull requests will not be merged if they fail the automated tests.
* [x] This PR only changes one algorithm file.  To ease review, please open separate PRs for separate algorithms.
* [x] All new Python files are placed inside an existing directory.
* [x] All filenames are in all lowercase characters with no spaces or dashes.
* [x] All functions and variable names follow Python naming conventions.
* [x] All function parameters and return values are annotated with Python [type hints](https://docs.python.org/3/library/typing.html).
* [x] All functions have [doctests](https://docs.python.org/3/library/doctest.html) that pass the automated testing.
* [x] All new algorithms include at least one URL that points to Wikipedia or another similar explanation.
* [x] If this pull request resolves one or more open issues then the description above includes the issue number(s) with a [closing keyword](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue): "Fixes #ISSUE-NUMBER".

