Количество дней между двумя датами
Здравствуйте!
Читаю документацию на HP50 и никак не могу понять, как вычислить количество дней между двумя датами.
Есть функция DDAYS(date1, date2), но эти даты нужно вводить в виде числа. Все бы ничего, но нигде нет функции конвертации даты в текстовом виде "ГГГГ-ММ-ДД" в числовой формат.
Как быть?
Для конвертации даты
Permalink
Для конвертации даты в числовой формат можно использовать программку (системный флаг 42 должен быть установлен):
<<
-> D
<<
D
9
10
SUB
"."
D
6
7
SUB
D
1
4
SUB
+ + +
STR->
>>
>>
Сохраним её 'SDND' STO
Тогда для расчёта количества дней между датами пользуемся такой программой:
<<
-> D1 D2
<<
D1
9
10
SUB
"."
D1
6
7
SUB
D1
1
4
SUB
+ + +
STR->
D2
9
10
SUB
"."
D2
6
7
SUB
D2
1
4
SUB
+ + +
STR->
DDAYS
>>
>>
Сохраним её 'DDYS2' STO.
ПРИМЕР: Найти количество дней между датами "2013-09-14" и "2013-01-01".
РЕШЕНИЕ:
Сбрасываем в стек две строки "2013-09-14" и "2013-01-01", набираем имя программы DDYS2 и нажимаем [ENTER]. Получаем в стеке на первом уровне ответ 256.
Для конвертации даты ....
Permalink
Для конвертации даты .... DDYS2 можно упростить, если использовать SDND.
<< SDND SWAP SDND SWAP DDAYS >>
Единственное ограничение - SDND должна быть в одной папке с DDYS2.
Упрощение
Permalink
Упрощение. Совершенству нет предела. :-)
Ограничение "SDND должна быть в одной папке с DDYS2" не обязательно. SDNS можно хранить в корневом каталоге HOME, тогда она будет доступна в ЛЮБОМ каталоге.
Прям китайские
Permalink
Прям китайские письмена получились... В столбик.
Спасибо за помощь! Выходит средствами калькулятора этого не сделать и надо свою программу писать.