Вычисление количества дней до любой даты ХХ и ХХ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

  • 1. Наберите адрес 1191863 и введите программу, нажав клавиши А↑, ↑↓.
  • 2. Введите исходные данные.
  • 3. Включите счет, нажав клавиши В/0, С/П. Время вычисления около 15 с.
  • 4. Считайте результат N.
  • 5. Включите счет, нажав клавишу С/П. Время вычисления около 2 с.
  • 6. Считайте результат ДН.
  • 7. Для повторного запуска программы повторите пп.2-6.

Инструкция по пользованию программой для ЭКВМ

  • 1. Загрузите программу с нулевого адреса.
  • 2. Введите исходные данные.
  • 3. Включите счет, нажав клавиши В/0, С/П.
  • 4. Считайте результат N.
  • 5. Включите счет, нажав клавишу С/П.
  • 6. Считайте результат ДН.
  • 7. Для повторного запуска программы повторите пп.2-6.

Тестовые примеры

Исходные данные: 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)

  0 1 2 3 4 5 6 7 8 9
00 ИП 8 2 2 - 1 0 ÷ K [x] П 6 ИП 9
10 + 1 8 9 9 - 3 6 5 ,
20 2 5 × K [x] ИП 8 ИП 6 1 2 × -
30 1 4 - 3 0 , 5 9 × K [x]
40 + 2 9 + ИП 7 + П 4 С/П ИП 4 7
50 ÷ K [x] 7 × - П 5 С/П БП 00 0
60 0 0 0 FFh FFh FFh FFh FFh FFh FFh

Исходный текст для кросс-компилятора

Файл 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 (многоканальный)