// Generate a random date between two years using Date
function randomDate(startYear: number, endYear: number): Date {
// Convert start and end years to timestamps
const start: Date = new Date(startYear, 0, 1); // January = 0
const end: Date = new Date(endYear, 11, 31); // December = 11
const startTs: number = start.getTime();
const endTs: number = end.getTime();
// Uniform distribution over the timestamp range
const randomTs: number = Math.floor(Math.random() * (endTs - startTs + 1)) + startTs;
// Convert back to Date
return new Date(randomTs);
}
const dates: Date[] = [];
for (let i: number = 0; i < 10; i++) {
dates.push(randomDate(1990, 2030));
}
for (const d of dates) {
console.log(`${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`);
}
/*
run:
2024-12-17
2026-4-19
1995-8-25
2015-4-13
1995-9-8
2021-11-30
2029-3-29
1990-5-8
2019-10-2
2023-5-15
*/