время между



Автор Ђаня Пластун задал вопрос в разделе Другие языки и технологии

Нужно рассчитать время между двумя датами в паскале.. Вроде начало получаться, но в итоге запуталась с месяцами. . и получил лучший ответ

Ответ от Евгений Фирсов[гуру]
program Date2;
uses crt;
type
TDate = record
day: 1..31;
month: 1..12;
year: word;
end;
var
srcDate, curDate: TDate;
function VisokosnyGod(n:integer):boolean;
begin
if (((n mod 400)=0) or (((n mod 3)=0) and ((n mod 100)<>0)) then
VisokosnyGod:=TRUE
else
VisokosnyGod:=FALSE;
end;
function CheckDayOfMonth(day, month, year: integer): boolean;
begin
if ((day>30) and (month in [2,4,6,9,11])) or
((day>29) and (month=2)) or
((day>28) and (month=2) and (not VisokosnyGod(year)) then
CheckDayOfMonth:=false
else
CheckDayOfMonth:=true;
end;
procedure EnterDate(var d: TDate);
var
n: integer;
dayOk: boolean;
begin
write('Год: ');
readln(d.year);
repeat
write('Месяц (1..12): ');
readln(n);
if (n<1) or (n>12) then
writeln('Ошибка! Номер месяца должен находиться в диапазоне 1..12');
until (n>0) and (n<13);
d.month:=n;
repeat
dayOk:=true;
write('День (1..31):');
readln(n);
if (n<1) or (n>31) or (not CheckDayOfMonth(n,d.month, d.year)) then begin
writeln('Ошибка! День не может иметь такое значение для выбранных '+ ' года и месяца. Выберите другой день');
dayOk:=false;
end;
until dayOk;
d.day:=n;
end;
function DaysFromZero(d,m,y:integer):longint;
begin
if m>2 then
m:=m+1
else begin
m:=m+13;
y:=y-1;
end;
DaysFromZero:=trunc(36525*y/100+306*m/10+d);
end;
begin
clrscr;
writeln('Программа возвращает количество дней между заданной'+'датой и текущей');
writeln;
write ('Введите сегодняшнее число: ');
EnterDate(curDate);
write ('Введите интересующую Вас дату: ');
EnterDate(srcDate);
writeln('Заданная дата: ',srcDate.day,'.',srcDate.month,'.',srcDate.year);
writeln('Сегодняшняя дата: ',curDate.day,'.',curDate.month,'.',curDate.year);
writeln('Количество дней между этими датами = ',
abs(DaysFromZero(curDate.day,curDate.month,curDate.year)-
DaysFromZero(srcDate.day,srcDate.month,srcDate.year));
writeln('Нажмите [Enter] для завершения программы');
readln;
end.
Источник:

Ответ от IT-специалист[гуру]
Используй модуль DateUtils

Ответ от Профессор[гуру]
function GetHour(d1,m1,y1,d2,m2,y2:integer):integer;
var n1,n2:TDateTime;
begin
n1:=EncodeDate(y1,m1,d1);
n2:=EncodeDate(y2,m2,d2);
GetHour:=round((n2-n1)*24);
end;

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Нужно рассчитать время между двумя датами в паскале.. Вроде начало получаться, но в итоге запуталась с месяцами. .
спросили в Сан Диего
Помогите перевести время на московское. "Friday at 6:30pm Pacific" - сколько часов в это время будет в Москве?
Перевод означает - Пятница 6:30 вечера по тихоокеанскому .

Разница между московским
подробнее...
спросили в Барнаул Карасук
Время и основные остановки в пути-Казань-Барнаул и хорошо бы расписание поездов на лето....
096НМОСКВА КАЗ - БАРНАУЛ отпр. 09:09 приб. 07:00 в пути45:51

Станция Времяприб. Стоянка
подробнее...
спросили в Интернет
Что такое "пинг"? Например в выражении "время пинга" ? Можете как то просто объяснить? Заранее спасибо.
ping — утилита для проверки соединений в сетях на основе TCP/IP.

Она отправляет запросы
подробнее...
спросили в Общество
А если Вам скажут: " Между нами всё кончено"! Ваша первая реакция на это и потом последующая?
- Между нами всё кончено!
- Ты шутишь?
- Между нами всё кончено!
- Не говори
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

ВОПРОСЫ ПО ИСТОРИИ ТЕМА ""ЗОЛОТОЙ ВЕК" РИМСКОЙ РЕСПУБЛИКИ: 1.Какое время назвали "золотым веком" римской республики? Нас
Одним из самых блестящих периодов в истории Римской республики, временем ее расцвета стала первая
подробнее...
спросили в Аккад
Какие различия между шумеро-аккадской культурой и культурой Месопатамии?
КУЛЬТУРА Месопотамии -- возникла примерно в то же время, что и Египетская.
Она сложилась в
подробнее...
спросили в Таиланд
Какое самое лучшее время для поездки в Таиланд?
Самое лучшее время ехать в Таиланд - время между ноябрем и февралём, когда не слишком много дождей
подробнее...
спросили в Успеть
Пересадка между рейсами в Шереметьево 1ч.15мин. Успею ли?
Кажется, минимальное стыковочное время между самолетами в терминале Д - это 40 минут, но если одна
подробнее...
спросили в Другое 1073 год
Как считали время на Руси? Часов то не было))
Первое упоминание в русских летописях о часе, как единице времени, относится к 1073 году. Со второй
подробнее...
спросили в Юмор
Между нами - города? между нами километры?
Между нами - города, поля, дороги,
Между нами - километры, мили, вёрсты,
Между нами -
подробнее...

что означает время в которое остановились часы?
Время, в которое остановились стрелки часов, указывает на события, которые вскоре могут с вами
подробнее...

Последняя треть ночи приблизительно время??? ?
Ночь начинается с заходом солнца и заканчивается с его восходом. Выясните, во сколько в вашей
подробнее...

В какое время года лучше всего поехать в Коста-Рику? Чтобы не было ни жары, ни дождей
Для такой небольшой страны, Коста-Рики обладает большим разнообразием погодных условий. В
подробнее...

Какое максимальное время может длится сеанс загара в солярии?
Первый раз нужно начать с 4-5 минут, постепенно увеличивать время. Но, например, я никогда не
подробнее...
Часовой пояс на Википедии
Посмотрите статью на википедии про Часовой пояс
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*