Пет въпроса за дати, един калкулатор
Почти всеки въпрос за дата, който хората всъщност задават, се свежда до една от петте форми: колко далеч една от друга са две дати, на коя дата попадам, ако добавя или извадя известно време, преди колко време (или колко скоро) е определена дата и на кой ден от седмицата се пада датата. Този инструмент обхваща всичките пет, без да се нуждае от пет отделни страници.
Под капака всеки режим използва една и съща аритметика, съобразена с календара — една и съща библиотека, която правилно обработва високосни години, месеци с различна дължина и общия брой дни след фиксирана референтна точка.
Как се изчислява разликата между две дати
Преброяването на необработения брой дни между две дати е просто изваждане, след като и двете се преобразуват в един текущ брой дни. Изразяването на тази разлика като години, месеци и дни е по-трудната част, тъй като трябва да се отчетат променливите дължини на месеците и високосните години, вместо да се приема, че всеки месец е 30 дни.
Работен пример: от 10 март до 20 юли същата година. Това са 4 месеца и 10 дни разлика, или общо 132 дни. В границите на годината работи по същия начин — 15 януари 2026 г. до 1 март 2027 г. излиза на 1 година, 1 месец и 14 дни, или общо 410 дни.
Добавяне или изваждане на време от дата: капанът в края на месеца
Adding a fixed number of days is straightforward. Adding months or years is not, because "one month later" doesn't always land on a real date — there's no April 31 or February 30.
Конвенцията, която този калкулатор следва: добавянето на един месец към 31 януари води до 28 февруари в нормална година или 29 февруари във високосна година — действителният последен ден от февруари в календара, вместо да прелива в март. Добавянето на година към 29 февруари на високосна година по подобен начин се преобразува в 28 февруари на следващата година, тъй като тази дата не съществува извън високосните години.
Това поведение в края на месеца е най-често срещаната конвенция, но не е единственото, което някои инструменти използват – няколко системи вместо това прехвърлят допълнителните дни в следващия месец. Ако отговаряте на математиката за дата на конкретна система (цикъл на фактуриране, правен договор), струва си да потвърдите кое правило следва тази система.
Работни дни срещу календарни дни
A calendar day count includes every day, weekends included. A business day count only counts Monday through Friday, which is what most shipping estimates, contract deadlines, and processing times are actually quoted in — a "5 business day" turnaround starting on a Thursday finishes the following Thursday, not the following Tuesday.
Едно честно ограничение, което си струва да се отбележи: броят на работните дни на този калкулатор изключва само почивните дни, но не и официалните празници. Празничните календари се различават според държавата и често според държавата, индустрията или компанията, така че общият инструмент не може безопасно да познае кои се отнасят за вашата ситуация – ако празник попада във вашия период от време, извадете го от общия брой на ръка.
Къде всъщност се използва този вид математика за дати
- Contract and legal deadlines defined as "N days from signing" or "N business days from notice."
- Планиране на проекти — работа назад от датата на стартиране, за да разберете кога дадена задача трябва да започне.
- Цикли на таксуване и абонамент, които се подновяват през фиксиран интервал след последната дата на плащане.
- Планиране на пътувания и визи, при които разрешеният престой често е ограничен до определен брой дни.
- Просто любопитство - в кой ден от седмицата се пада определена историческа или бъдеща дата.
Ако това, от което всъщност се нуждаете, е точна възраст в години, месеци и дни от датата на раждане, а не общ интервал между две произволни дати, Възрастов калкулатор е създаден специално за това, с вградени зодиакални знаци и проследяване на етапи. За текущо броене на дни между две дати без разбивка година/месец, Брояч на дни стига направо до този номер.