User Rating 0.0
Total Usage 0 times
Category Time & Date
Beginning of sequence
Sequence boundary (inclusive)
Quick Presets:
Is this tool helpful?

Your feedback helps us improve.

About

Generating accurate date sequences requires handling edge cases that break naive implementations: leap years shifting February boundaries, month-end overflow when stepping by months (January 31 + 1 month ≠ February 31), and timezone-induced date shifts at midnight. This tool implements proper calendar arithmetic following ISO 8601 standards, correctly rolling dates forward when target days don't exist in shorter months. The exclusion engine filters weekends via getDay {0, 6} and matches custom holiday sets with O(1) hash lookups.

Financial systems calculating payment schedules, project managers building Gantt timelines, and data analysts generating test fixtures all require deterministic date lists. A spreadsheet drag-fill fails silently on month boundaries and can't exclude business days. This generator caps output at 10,000 entries to prevent browser memory exhaustion while providing instant CSV export for external processing.

date generator date sequence date range calendar dates date list date series recurring dates

Formulas

The sequence generator produces dates from start S to end E with step interval k in unit u. The output set D is defined as:

D = { di | di = S + i k u, di E, di X }

Where S = start date, E = end date, k = step value (integer 1), u = unit multiplier (day = 1, week = 7, month/year via calendar arithmetic), X = exclusion set (weekends holidays), i = iteration index from 0 to n.

Leap year detection uses the Gregorian rule:

isLeap(y) = (y mod 4 = 0 y mod 100 0) (y mod 400 = 0)

Month stepping handles day overflow by clamping to month-end: if target day > days in target month, set day = last day of month. ISO week number calculation follows ISO 8601: week 1 contains January 4th.

Reference Data

Format TokenOutput ExampleDescription
YYYY20254-digit year
YY252-digit year
MM07Month with leading zero (01-12)
M7Month without leading zero (1-12)
DD04Day with leading zero (01-31)
D4Day without leading zero (1-31)
MMMMJanuaryFull month name
MMMJanAbbreviated month name
DDDDFridayFull weekday name
DDDFriAbbreviated weekday name
Q3Quarter (1-4)
WW27ISO week number (01-53)
UNIX1751673600Unix timestamp (seconds)
ISO2025-07-04ISO 8601 format
Step Units Reference
Days1-9999Calendar days including weekends
Weeks1-14287-day intervals
Months1-600Calendar months (day overflow handled)
Years1-100Full calendar years
Common Exclusion Patterns
WeekendsSat, SunExcludes getDay = 0 or 6
US Federal Holidays10 days/yearNew Year, MLK Day, Presidents Day, etc.
EU Bank HolidaysVariesGood Friday, Easter Monday, Christmas
Output Limits
Maximum Dates10,000Prevents browser memory issues
Date Range1000-9999 ADJavaScript Date object limits
CSV ExportUnlimitedDownloads full sequence

Frequently Asked Questions

When stepping by months, if the target day doesn't exist (e.g., February 31), the generator clamps to the last valid day of the target month. January 31 + 1 month = February 28 (or 29 in leap years). This follows financial industry conventions for end-of-month date rolling.
The generator enforces a 10,000 date limit to prevent browser memory exhaustion. If your parameters would exceed this, you'll receive a warning and can either narrow your range, increase step size, or download the first 10,000 dates and adjust the start date for subsequent batches.
Enable "Exclude Weekends" to filter Saturday and Sunday. For holidays, enter specific dates in the "Exclude Dates" field in YYYY-MM-DD format, comma-separated. The generator performs O(1) hash lookups against your exclusion list for each candidate date.
Yes. Use the "Custom" format option and combine tokens with any separator. Example: DD/MM/YYYY produces 04/07/2025, while DDDD, MMMM D, YYYY produces Friday, July 4, 2025. Tokens are case-sensitive: MM = zero-padded month, M = unpadded.
JavaScript Date objects are timezone-aware. The generator uses local midnight (00:00:00) for all dates. If you're comparing against UTC-based systems, dates near midnight may shift by one day. The ISO output format always reflects local time interpretation.
Week numbers follow ISO 8601 precisely: weeks start Monday, and week 1 is the week containing January 4th (or equivalently, the first week with 4+ days in January). December 31 may belong to week 1 of the following year in some cases.