Описать функцию подсчитывающую сколько дней прошло от первого января 2005 года до даты d этого года. - Turbo Pascal
Формулировка задачи:
Дан массив записи, представляющий собой календарь(число,месяц,год). Описать функцию подсчитывающую сколько дней прошло от первого января 2005 года до даты d этого года.
Решение задачи: «Описать функцию подсчитывающую сколько дней прошло от первого января 2005 года до даты d этого года.»
textual
Листинг программы
function Julian(y, m, d: Integer): Longint; begin if m>2 then Dec(m,3) else begin Inc(m,9); Dec(y); end; Julian:= 146097*(y div 100) div 4 + 1461 *(y mod 100) div 4 + (153*m+2) div 5+d+1721119; end; type TDate = record d, m: ShortInt; y: Integer; end; var d: array [1..5] of TDate; i: Integer; d0: Longint; begin d0:=Julian(2005,1,1); WriteLn('Введите даты в виде ДД ММ ГГГГ (',High(d)-Low(d)+1,'):'); for i:=Low(d) to High(d) do with d[i] do Read(d,m,y); WriteLn('От 01.01.2015:'); for i:=Low(d) to High(d) do with d[i] do WriteLn(d:2,'.',m:2,'.',y:4,' : ',Julian(y,m,d)-d0); end.
Объяснение кода листинга программы
- Функция
Julian
принимает три параметра:y
(год),m
(месяц) иd
(день). Она вычисляет количество дней между первым января указанного года и указанной датой. - Если
m
больше 2, то функция увеличивает месяц на 3. В противном случае, она увеличивает год на 1 и уменьшает месяц на 9. - Функция возвращает сумму: 146097 (год / 100) / 4 + 1461 (год % 100) / 4 + (153 * месяц + 2) / 5 + день + 1721119.
- Тип
TDate
представляет собой запись с полями:d
(день),m
(месяц) иy
(год). - Переменная
d
представляет собой массив из 5 записей типаTDate
. - Переменная
i
является счетчиком для цикла, который будет использоваться для чтения дат. - Переменная
d0
инициализируется значением функцииJulian(2005,1,1)
. - Выводится приглашение пользователю ввести даты в виде ДД ММ ГГГГ.
- Для каждой записи в массиве
d
считывается год, месяц и день из ввода пользователя. - Выводится сообщение с датой и разницей в днях до указанной даты.
- Цикл завершается, когда пользователь вводит некорректные данные или достигает конца массива
d
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д