Вычисление количества дней до любой даты ХХ и ХХI столетия |
Главная / ЭКВМ / Программы для ЭКВМ / БРП-4 |
Все календарные расчеты начинаются с вычисления количества дней от некоторого воскресенья. Приняв за точку отсчета воскресенье 31 декабря 1899 г., количество дней до любой даты ХХ и ХХ1 столетия можно вычислить по формуле N = [(G-1899-S)*365,25] + [(12*S+M-14)*3059] + 29 + D, где N - количество дней, прошедших от 31 декабря 1899 г. до выбранной даны DMG; D - номер дня (по порядку их следования в месяце); M - номер месяца (М = 1,2,...,12); G - номер года выбранной даты; S = [(22-M)/10]. День недели определяется как остаток от деления N на 7. Остаток, равный 0, означает воскресенье, 1 - понедельник, 2 - вторник, 3 - среду, 4 - четверг, 5 - пятницу, 6 - субботу. Программа вычисляет значение N и день недели (ДН). Исходные данные заносятся в ячейки памяти: D → П7, М → П8, G → П9. Результаты вычислений записываются в ячейки памяти: N → П4, G → П9 и отображаются на дисплее. Инструкция по пользованию программой для МК-52 с БРП-4
Инструкция по пользованию программой для ЭКВМ
Тестовые примерыИсходные данные: D1 = 4, M1 = 1, G1 = 1943. Результат: N1 = 15709, DH1 = 1. Исходные данные: D2 = 17, M2 = 4, G2 = 1986. Результат: N2 = 31518, DH2 = 4. N2-N1 = 15809. Программа "Вычисление количества дней до любой даты ХХ и ХХI столетия"Программа 14 из блока расширения памяти БРП-4, переключатель "1/2" блока в положении "1", адрес 1191863. Файл brp4-14.mkp (КС 11091/249)
Исходный текст для кросс-компилятораФайл brp4-14.mkl .CHARSET 1251 ; БРП-4 ; 14. Вычисление количества дней до любой даты XX и XXI столетия (1 - 1191863) .ORG 0 A0: ; с адреса 57 RM 8 22 - 10 / K INT M 6 RM 9 + 1899 - 365,25 * K INT RM 8 RM 6 12 * - 14 - 30,59 * K INT + 29 + RM 7 + M 4 R/S RM 4 7 / K INT 7 * - M 5 R/S GOTO A0 0000 .END Примечание. Считывание программ из БРП в МК-52 производилось блоками по 7 байт. Неиспользуемые команды в конце программы оставлены для совместимости и используются при подсчёте контрольной суммы. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |