隨機日期生成器
從一個包含的範圍內產生均勻取樣的日曆日期,不會出現夏令時偏移問題。
隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。
使用方式
- 1.請選擇有效的起始日期和結束日期,兩端點皆可被選取。
- 2.輸入從 1 到 1,000 的計數,並決定是否允許相同日期出現多次。
- 3.產生日期,確認顯示的範圍與計數,並複製或記錄你需要的值。
關於隨機日期生成器
隨機日期產生器會從起始和結束日期中抽取日曆日期,全部在你的瀏覽器中完成。兩個端點皆包含,因此範圍從 2024-02-28 到 2024-03-01 可能會出現二月的 28(閏日)或三月的 1。選擇你需要的結果數量,並決定是否允許重複日期,然後產生穩定的 YYYY-MM-DD 格式清單。不會上傳任何日期範圍或產生的清單至 Lizely。該工具支援從 0001-01-01 到 9999-12-31 的民國日曆日期,若輸入無效則會顯示錯誤,而非默默修正。
該生成器將每個日期視為 UTC 日曆日序數,而非當地午夜加上固定小時數。一個嚴格的 YYYY-MM-DD 值會透過設定其年、月、日於 UTC Date 物件並讀取回傳的組成部分來驗證。其 UTC 毫秒值除以恰好 86,400,000 得到相對於 1970-01-01 的整日位置。取樣操作針對這些整數日位置進行,選取的位置會再以 UTC 取值格式化。此方式避免了常見的夏令時錯誤,例如加上 24 地方小時會落在 23:00 或 01:00,跳過顯示日期,或在時間切換附近重複一個日期。
日曆驗證遵循 ECMAScript Date 中實作的格里高利規則:能被四整除的年份通常是閏年;百年年份為平年,除非能被 400 整除。因此 2000-02-29 與 2024-02-29 是有效的,而 1900-02-29 與 2023-02-29 則被拒絕。月與日溢位也會被拒絕:例如 2025-04-31 不會靜默滾動至五月。此實作使用 setUTCFullYear 代替 Date.UTC 的舊式兩位數年份解釋,因此支援的年份從 0001 到 0099 會維持其真實年份,不會被轉移到二十一世紀。
亂數來自瀏覽器 Web Crypto getRandomValues API 透過無符號 32 位元字元。將亂數字元對映至日期時,使用原始取模運算會在範圍大小無法整除 2^32 時,使某些日期多出一個可能的來源值。此工具透過拒絕取樣法去除該取模偏誤:只接受大小為可用日期數量精確倍數的最長區間,然後應用取模運算。每個被接受的順序值因此擁有相同數量的 32 位元值。一個受限制的安全防護機制會在亂數來源持續返回被拒絕的尾端值時報告失敗。此工具不使用 Math.random()。
當允許重複時,每次請求的生成會獨立地從完整範圍內取樣,因此相同日期可能出現多次。當禁止重複時,生成器會執行一種稀疏的非重複 Fisher-Yates 選取。每個合格日期在每一步都有均勻的選擇機會,先前選取的位置會被移除,記憶體會隨著請求數量增長,而非隨著多達數百萬天的範圍增長。唯一模式會拒絕請求數量超過可用日期數的請求。它從不回應返回較少的日期,或在不經通知的情況下啟用重複。
結果上限為每產生一次最多 1,000 個日期。若計數為空白、小數、零、負數或超過 1,000,將顯示明確錯誤,說明允許範圍且不會截斷任何內容。起始日期不得晚於結束日期。一天範圍是有效的,且總是返回該日期;若需重複結果,必須啟用重複模式。編輯任一端點、更改計數或切換重複模式都會清除舊清單及任何先前錯誤,因此以先前設定產生的結果不會殘留於畫面上,如同與當前控制設定相符。
可將產生的日期用於測試樣本、撰寫提示、樣本排程、隨機練習、展示或其他非權威性資料。輸出並非預測、約會服務、法律截止日期計算器、工作日日曆、假日日曆、時區轉換器或時間戳產生器。日期中不包含一天中的時間或時區偏移,僅保留內部 UTC 序數方法。清單中不會排除週末、公共假日、歷史日曆轉換、不可用預約日或組織特定的黑檔日期。在實際流程中使用前,請先獨立檢查這些限制。
若需可重現的軟體測試,請儲存生成的日期或使用你自己設定種子的測試生成器;Web Crypto 透過此介面並無提供種子功能。為確保公平性,請記住等機率並不表示某次執行看起來均勻分佈,重複模式也可能合法重複值。若選擇有財務、法律、競賽、安全或審計影響,請使用有檔案記錄且獨立監督的程式並保留證據。此瀏覽器工具提供精確且無偏的抽樣,僅適用於一般用途,並非經認證的隨機抽選服務。
方法與來源
來自 YYYY-MM-DD 格式的嚴謹輸入,並以 0001-9999 年份為基礎,轉換為 UTC 日期組成的整數序數,單位為 86,400,000 毫秒日。會從 Web Crypto Uint32 產生的值中,採用拒絕抽樣方式取得包含端點的序數範圍,再經由模運算縮減。重複模式獨立抽選;唯一模式則使用稀疏的非重複 Fisher-Yates 抽選法。選定的序數將透過 UTC 取值函式進行格式化。
常見問題
- 起始和結束日期可以產生嗎?
- 可以。此範圍為包含式,因此起始日期和結束日期與兩者之間的每一個日期具有相同的選擇機會。
- 會出現夏令時跳躍或重複日期嗎?
- 否。產生器取樣整數 UTC 日順序值,並使用 UTC 元件格式化,而不是在當地午夜加上小時。
- 閏日如何驗證?
- 嚴格的 UTC 組成驗證遵循格里高利閏年規則:2000 與 2024 有二月的 29,而 1900 與 2023 則沒有。
- 當禁止重複日期時會發生什麼?
- 日期會以均勻方式無重複取樣。若請求的數量超過範圍內的天數,工具將報告錯誤,而不是縮短清單。
- 會使用 Math.random() 嗎?
- 不會。該工具使用瀏覽器 Web Crypto 的無符號位元組與拒絕取樣,以避免將位元組對映到日位置時出現取模偏誤。
相關工具
產生器 使用指南
查看全部- Generate Random Dates for PostgreSQL the Easy Way (英文原文)
- Generate a Random Date in JavaScript Without DST Drift (英文原文)
- Generate a Random Date in Excel: Inclusive Range Method (英文原文)
- Generate Random Dates in Excel for a Date Range (英文原文)
- Generate Random Dates in Excel From a Browser Tool (英文原文)
- How to Generate Random Dates From Any Range (英文原文)
- How to Generate a Random Date in Java the Easy Way (英文原文)
- Generate a Random Date in Excel Within a Range | Lizely (英文原文)
- Generate Random Dates and Times in Excel Without Formulas (英文原文)
- How to Use the Coin Flip App for a Fair Toss (英文原文)
- How to Generate Bingo Cards With Pictures (or Numbers) (英文原文)
- Bar Chart Best Practices: Choosing Scales and Labels (英文原文)
- Avatar Generator on iPhone: Make a Profile PNG in Safari (英文原文)
- How to Create an Acrostic Poem on Rain (英文原文)
- Make a Table Chart in Canva From a Clean SVG (英文原文)
- Download a YouTube Thumbnail From Any Video Link (英文原文)
- Create Yes or No on Excel Without a Spreadsheet Formula (英文原文)
- Scatter Plot in Excel With 3 Variables: Prep and Build (英文原文)
- Convert Word to JPG: Blend Two Words for the Filename (英文原文)
- What Should I Eat? A Fast Way to Pick a Meal (英文原文)