Към основното съдържание
LibraTool logoLibraTool

Калкулатор на разлика между дати — безплатно

Изчислете точната разлика между две дати — години, месеци, дни, седмици, работни дни (без почивни дни), часове и минути.

Работи офлайн след зареждане

Бързи пресети

Изберете и двете дати, за да видите разликата.

Често срещани употреби

  • Изчислете дните до датата на ражданетоОбратно броене до датата на раждането на бебето — разберете точно колко седмици, дни и часа остават до великия ден.
  • Дни до вашия отпускОбратно броене до пътешествието с работни дни, общи дни и оставащи седмици за планиране.
  • Работни дни до крайния срок на проектаИзчислете точния брой работни дни (с изключение на уикендите) между днес и крайния срок на проекта.
  • Изчислете дните на годишнина заедноРазберете точно колко дни, месеца и години сте заедно с някого специален.
  • Калкулатор на разлика във възрастта между двама човекаИзчислете точната разлика във възрастта между два рождени дни — години, месеца и дни на раздяла.

Как работи

Цялото изчисление се извършва изцяло в браузъра чрез ръчно написана UTC аритметика — без външна библиотека, без заявка към сървъра. Инструментът анализира низове ГГГГ-ММ-ДД в календарни компоненти, изчислява разлики чрез времеви маркери в милисекунди Date.UTC(), за да избегне отместване от лятното часово време, и итерира ден по ден, за да преброи работните дни от понеделник до петък.

  1. 1
    Безопасен анализ на дата
    Всеки низ с дата се валидира с регулярен израз и след това се възстановява чрез Date.UTC() — не new Date(string) — така че потребители западно от UTC никога не виждат изместване на деня от седмицата, причинено от интерпретацията на браузъра на входове само с дата спрямо местната часова зона.
  2. 2
    Изваждане в милисекунди по UTC
    Двете календарни дати се преобразуват в времеви маркери за полунощ по UTC с Date.UTC(y, m, d). Целочислено деление на 86 400 000 мс дава точен брой цели дни, който е имунизиран срещу преходите на лятното часово време, което иначе може да направи ден да изглежда с дължина 23 или 25 часа.
  3. 3
    Календарна разбивка и брой работни дни
    Ръчно написана декомпозиция на година/месец/ден обработва неравномерностите в дължината на месеците (заемайки дни от предходния месец при нужда). Отделен цикъл обхожда всеки UTC ден между двете дати и увеличава брояч само за понеделник–петък (getUTCDay() !== 0 или 6), произвеждайки точен общ брой работни дни независимо от локала.
  4. 4
    Резултатите се показват във всички единици
    Общите стойности се форматират с toLocaleString(), използвайки локала на страницата за групиране на цифри, съобразено с локала, след което се показват едновременно като години/месеци/дни, общо дни, работни дни, седмици, часове и минути. Текущата двойка дати се записва в URL адреса чрез history.replaceState, така че всеки резултат може да бъде отметнат или споделен като директен линк.

Свързани инструменти

Често задавани въпроси