ARDUINO Расчет интервала между датами в формате N лет NNN дней

VadVad

✩✩✩✩✩✩✩
10 Апр 2025
5
0
Не могу найти библиотеку для подобного расчета.
 

poty

★★★★★★✩
19 Фев 2020
3,445
981
Библиотека? А самому посчитать? Отнять два числа друг от друга - для этого библиотека не нужна.
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
581
175
@poty,
Справедливости ради, там не только "отнять два числа друг от друга". Хотя наверно любое действие можно свести к N - ному количеству вычитаний (сложений) и условных переходов.
Если в библиотеке встроен расчет номера дня в году, вроде "yearDay; // день года (1.. 365-366)", то одно/два условия и несколько + - помогут легко получить результат. Библиотеки с номером дня в году точно есть.
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
581
175
@Сотнег,
Если есть правильный yearDay то проблемы нет. Просто вычитать yearDay2 - yearDay1 если yearDay2 > yearDay1, если меньше, то добавить количество дней в Year1 (т.е. номер дня 31/12/Year1)
 

Сотнег

★★★★★★★
15 Янв 2020
4,523
1,539
@Bruzzer, библиотеки ищут для того, чтобы не реализовывать заново довольно геморройный алгоритм.
Не всем он покажется "проблемы нет". Чем больше знаний, тем меньше оптимизма.
Screenshot_2025-04-10-12-32-43-651_com.android.chrome-edit.jpg
 

bort707

★★★★★★✩
21 Сен 2020
3,168
931
думаю, проблема в високосных.
все зависит от того, как заданы даты. Если в формате Юникстайм - то просто вычесть одно число из другого. Если через число-месяц-год - то сначала перевести обе в Юникстайм и потом вычесть :)
Високосные года тут вообще не играют, они уже учтены в Юникстайме
 

Сотнег

★★★★★★★
15 Янв 2020
4,523
1,539
@Bruzzer,
в этой теме нужно только годы учитывать.
Но рамки не указаны. Возможно, автору хватит просто каждые 4 года лишний день учитывать.
В общей же формулировке уже не так всё просто будет с високосными годами. Ну а если бы библиотеку кто-то делал, ему бы за високосные секунды обязательно бы предъявили.
 

bort707

★★★★★★✩
21 Сен 2020
3,168
931
топикстартер другое просил.
с чего бы это? По-моему он просил разницу между двумя моментами в днях, которая равна разнице в секундах между двумя юникстаймами, деленное на число секунд в сутках
Если не это - пусть поясннит.
 

bort707

★★★★★★✩
21 Сен 2020
3,168
931
В общей же формулировке уже не так всё просто будет с високосными годами.
бред по-моему. Для разницы между двумя отметками времени високосные годы вообще роли не играют.

в годах и днях - это другое.
тоже самое
Число дней разделить на 365.25 и все
 

bort707

★★★★★★✩
21 Сен 2020
3,168
931
в библиотеке уже должен быть правильный расчет номера дня в году
не нужен он там.
Даже вреден скорее, номер дня вас запутывает.

кто-нибудь напишет?
сначала распишите подробнее задачу.
Пока, как вы можете заметить, из трех отвечающих КАЖДЫЙ понял ее по-своему.
 

VadVad

✩✩✩✩✩✩✩
10 Апр 2025
5
0
Итак. Нужно определять "возраст", то сколько лет + сколько дней прошло с определенной даты до сегодня в формате NN лет NNN дней
. Из года текущего вычитается год исходный и потом определяется порядковый день в году. Значит нужно лищь определить номер дня в году. Верно?
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,523
1,539
@VadVad,
исходные даты у вас в каком формате даны?
И какой диапазон (дальше 2099 года надо ли)?
 

VadVad

✩✩✩✩✩✩✩
10 Апр 2025
5
0
Действительно! Ведь нужен лишь номер дня в году. А я собрался было суммировать все истекшие дни, что неверно.
Спасибо!

это время. А дата где?
такие же. Берутся из GPS

дата такая же
byte month, day;

в таком случае какая библиотека для определения номера дня в году?