Просмотр полной версии : [Delphi] Расчет времени
Lord NightKon
06.05.2009, 15:03
Приветствую всех.
Как известно - скоро у студентов сдача курсачей (запара ещё та =) ), но вот решить задание кусовой нет ни возможности, ни навыков (как преподают, особенно в начале, вы наверняка знаете), вот по этому прошу помощи в написании кода на Дэлфи.
Задача такова; написать программу, проводящую расчет времени (дней, часов, минут, секунд) между двумя датами учитывая все календарные правила (высокосный год, последние числа месяцов и т. д.). Формат даты: 15.01.2000 14:37:52 (ДД. ММ. ГГГГ). Временные рамки 1960 г. - 2020 г.
Пример: расчитать время между 01.01.2000 и 31.10.2009.
Решение: между 01.01.2000 и 31.10.2009 N-коичество дней, N-количество часов, N-коичество минут, N-коичество секунд.
Все. Буду благодарен всем за помощь в решении задачи. Спасибо.
чето помнится писал прогу для вычисления дней до денюхи )
// походу возвращает скока дней - передаешь день dd и месяц m (от 1 до 12)
// високосные года не учитывает
function dnei(dd,m:integer):integer;
var k,d:integer;
begin
for k:=1 to m do
begin
d:=31;
if k=2 then d:=29;
if (k=4) or (k=6) or (k=9) or (k=11) then d:=30;
dd:=dd+d;
end;
dnei:=dd;
end;
// а тут типа берется текущая дата и вычитается...
procedure TForm1.Button1Click(Sender: TObject);
var dat:TDateTime;
a,b:integer;
begin
dat:=date;
a:=dnei(strtoint(edit1.Text),combobox1.ItemIndex);
b:=dnei(strtoint(FormatDateTime('d',dat)),strtoint (FormatDateTime('m',dat))-1);
if a<b then a:=a+365;
label2.Caption:='Дней до денюхи осталось: '+inttostr(a-b);
end;
ну для минут и ваще времени можно умножить еще на 24 потом на 60... и тд
гуру кодеры делфисты не ругайтеся - это лучше чем ничего! )
Мля... Мне в 10 классе на 10 такую же задачку сказали решать, только реализация на паскале)))0 Задача была выполнена... могу найти код, если надо =)))
Lord NightKon
06.05.2009, 17:37
2zerokko - однозначно нужно - пожалуйста посмотри код
2Gar|k - спасибо за помощь, теперь есть от чего оттолкнуться
Приветствую всех.
Как известно - скоро у студентов сдача курсачей (запара ещё та =) ), но вот решить задание кусовой нет ни возможности, ни навыков (как преподают, особенно в начале, вы наверняка знаете), вот по этому прошу помощи в написании кода на Дэлфи.
Задача такова; написать программу, проводящую расчет времени (дней, часов, минут, секунд) между двумя датами учитывая все календарные правила (высокосный год, последние числа месяцов и т. д.). Формат даты: 15.01.2000 14:37:52 (ДД. ММ. ГГГГ). Временные рамки 1960 г. - 2020 г.
Пример: расчитать время между 01.01.2000 и 31.10.2009.
Решение: между 01.01.2000 и 31.10.2009 N-коичество дней, N-количество часов, N-коичество минут, N-коичество секунд.
Все. Буду благодарен всем за помощь в решении задачи. Спасибо.
прикольные у вас курсачи, укладываются в одну строку... =\
Преподы отжигают.
ShowMessage(intToStr(DaysBetween(StrToDate(Edit1.T ext), StrToDate(Edit2.Text))));
P.S. не забудь подключить стандартный модуль DateUtils;
Проверял в Delphi 7
Lord NightKon
07.05.2009, 09:59
нужно ещё и время выщитать
чето помнится писал прогу для вычисления дней до денюхи )
ну для минут и ваще времени можно умножить еще на 24 потом на 60... и тд
гуру кодеры делфисты не ругайтеся - это лучше чем ничего! )
Не учитываются високосные годы и поправки григорианского календаря.
нет, однако наглые студенты.
не хватает сил посмотреть какие функции содержит модуль DateUtils???
/^scriptor$/
20.05.2009, 00:46
год високосный если, если остаток от деления на 4 равен нулю
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot