Программа для вычисления возраста человека в днях, часах, минутах и секундах - Pascal
Формулировка задачи:
Здравствуйте, помогите пожалуйста.
Что нужно добавить, чтоб вычислял общее число дней, часов, минут и секунд?
var
y, m, d,
yy, mm, dd, god,
vozrast: integer;
var
correct: boolean;
correct2: boolean;
correct3: boolean;
correct4: boolean;
begin
writeln ('Введите дату рождения: ДД ММ ГГГГ');
readln (d, m, y);
writeln ('Введите сегодняшнюю дату: ДД ММ ГГГГ');
readln (dd, mm, yy);
correct := ((y<=yy) and (m<mm));
correct2 := ((y<=yy) and (m=mm) and (d<=dd)) ;
correct3 := ((y<=yy) and (m=mm) and (d>dd)) ;
correct4 := ((y<=yy) and (m>mm)) ;
if correct or correct2 then
begin
god := (yy-y);
vozrast:= god;
writeln ('Ваш возвраст составил: ', vozrast);
end ;
if correct3 or correct4 then
end.Решение задачи: «Программа для вычисления возраста человека в днях, часах, минутах и секундах»
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;
var
y,m,d: Integer;
n: Longint;
begin
Write('Дата рождения ДД ММ ГГГГ: '); ReadLn(d,m,y); n:=Julian(y,m,d);
Write('Текущая дата ДД ММ ГГГГ: '); ReadLn(d,m,y); n:=Julian(y,m,d)-n;
WriteLn('Дней: ',n,' Часов: ',n*24,' Минут: ',n*24.0*60:0:0,' Секунд: ',n*24.0*3600:0:0);
end.
Объяснение кода листинга программы
- Создание функции
Julianс параметрамиy, m, dдля вычисления Юлианской даты:- Название переменных и значений:
y, m, d: Integer - Основная логика функции - конвертация григорианской даты в Юлианскую и возвращение результатов по формуле.
- Название переменных и значений:
- Объявление переменных
y, m, dиn:- Название переменных и значений:
y, m, d: Integer, n: LongInt
- Название переменных и значений:
- Запрос на ввод даты рождения и вычисление Юлианской даты с помощью функции
Julian:- Ввод значений переменных
d, m, y - Использование функции
Julian(y, m, d)для вычисления Юлианской даты и сохранение результата в переменнойn
- Ввод значений переменных
- Запрос на ввод текущей даты и вычисление разницы в днях, часах, минутах и секундах:
- Ввод значений переменных
d, m, y - Использование функции
Julian(y, m, d)для вычисления Юлианской даты текущей даты и вычисление разницы от рождения до текущей даты, сохранение результата в переменнойn
- Ввод значений переменных
- Вывод результатов:
- Вывод разницы в днях, часах, минутах и секундах с использованием вычисленной разницы
n:- Дней:
n - Часов:
n*24 - Минут:
n*24.0*60 - Секунд:
n*24.0*3600
- Дней:
- Вывод разницы в днях, часах, минутах и секундах с использованием вычисленной разницы