Calculating the exact number of days between a past date and today is a common need, whether you are tracking a project deadline, calculating interest accrual, planning an anniversary, or simply satisfying curiosity. Because the answer to "how many days ago was September 20" changes every single day, the most valuable approach is not a static number—which would be outdated the moment you read it—but a mastery of the methods and tools required to calculate it accurately for any given moment.
This guide provides a comprehensive breakdown of how to perform this calculation manually, using digital tools, and programmatically, while accounting for the calendar quirks like leap years that often trip people up.
Understanding the Core Variables
Before diving into the math, you must identify the two fixed variables in this equation: the Start Date (September 20 of a specific year) and the End Date (Today’s date).
The complexity arises because "September 20" is not a single point in time. Now, it recurs annually. Because of this, the first step is always determining which September 20 you are referencing. Are you calculating days since September 20, 2023? Or perhaps September 20, 2010? The year drastically alters the result Small thing, real impact..
Once the specific start date is locked in, the calculation is essentially: End Date minus Start Date = Total Days Elapsed.
Method 1: Manual Calculation (The "Paper and Pencil" Approach)
While tedious for large gaps, manual calculation builds a fundamental understanding of the calendar structure. It is useful for short durations (e.Plus, g. , calculating days since September 20 of this year if we are currently in October or November) Nothing fancy..
Step-by-Step Process:
- Identify the Current Date: Note the current Year, Month, and Day (e.g., May 15, 2024).
- Identify the Target Date: Note the Target Year, Month (September = 9), and Day (20).
- Calculate Remaining Days in Start Month: If the start date is September 20, count days from Sept 21 to Sept 30. September has 30 days, so 10 days remain in September.
- Calculate Full Months In Between: Add the days for each full month between the start month and the end month.
- Example (Sept 20, 2023 to May 15, 2024):
- October: 31 days
- November: 30 days
- December: 31 days
- January: 31 days
- February: 29 days (2024 is a leap year)
- March: 31 days
- April: 30 days
- Total full months: 213 days
- Example (Sept 20, 2023 to May 15, 2024):
- Calculate Days in End Month: Add the day number of the current date (e.g., 15 days for May 15).
- Sum the Totals: 10 (Remaining Sept) + 213 (Full Months) + 15 (Current Month) = 238 Days.
The Leap Year Factor
This is the single biggest source of error in manual calculations. A leap year occurs every 4 years (years divisible by 4), except for years divisible by 100 but not by 400 And that's really what it comes down to..
- 2024: Leap Year (Feb has 29 days).
- 2023: Common Year (Feb has 28 days).
- 2000: Leap Year (Divisible by 400).
- 1900: Common Year (Divisible by 100, not 400).
If your date range crosses a February 29, you must add that extra day.
Method 2: Spreadsheet Software (Excel / Google Sheets)
For professionals, students, or anyone tracking dates regularly, spreadsheet software is the gold standard. It handles leap years, month lengths, and date formatting automatically.
The DAYS Function
This is the most direct function.
Syntax: =DAYS(end_date, start_date)
- Cell A1:
9/20/2023(Start Date) - Cell B1:
=TODAY()(End Date - updates dynamically) - Cell C1:
=DAYS(B1, A1)
Result: An integer representing the total days elapsed. If the start date is in the future, the result will be negative.
The DATEDIF Function (Legacy but Powerful)
This hidden gem calculates differences in Years, Months, or Days.
Syntax: =DATEDIF(start_date, end_date, "unit")
"D": Total days."M": Total full months."Y": Total full years."MD": Days ignoring months/years (useful for day-of-month difference)."YM": Months ignoring years."YD": Days ignoring years.
Example: =DATEDIF(A1, TODAY(), "D") yields the exact same result as DAYS but allows for the compound breakdown (e.g., "1 Year, 4 Months, 12 Days").
Formatting Tip
Ensure your cells are formatted as Date (Format > Number > Date). If you type "Sept 20, 2023" as text, the formula will return a #VALUE! error. Use the DATE(year, month, day) function for absolute safety: =DATE(2023, 9, 20).
Method 3: Programming Solutions (Python, JavaScript, SQL)
For developers building applications, dashboards, or automation scripts, hardcoding the logic is inefficient. Standard libraries handle the Gregorian calendar complexities (leap seconds, time zones, DST) natively.
Python (datetime module)
Python’s standard library makes this trivial Most people skip this — try not to..
from datetime import date
# Define the fixed past date
past_date = date(2023, 9, 20)
# Get today's date automatically
today = date.today()
# Calculate difference
delta = today - past_date
print(f"Days since September 20, 2023: {delta.days}")
Output: Days since September 20, 2023: 238 (Example output for May 15, 2024) That's the part that actually makes a difference..
Advanced: For time-zone aware calculations (critical for global apps), use datetime.datetime.now(timezone.utc) and pytz or zoneinfo (Python 3.9+).
JavaScript (Date Object / Temporal API)
Legacy Date object math requires milliseconds conversion.
const past = new Date('2023-09-20'); // UTC midnight
const now = new Date(); // Current local time
// Difference