[Delphi] Расчет времени

Обсуждение в разделе «С/С++, C#, Delphi, .NET, Asm», начал(-а) Lord NightKon, 6.05.2009.

  1. Lord NightKon

    Lord NightKon Member

    Регистрация:
    26.03.2008
    Сообщения:
    28
    Одобрения:
    7
    Репутация:
    0
    Приветствую всех.
    Как известно - скоро у студентов сдача курсачей (запара ещё та =) ), но вот решить задание кусовой нет ни возможности, ни навыков (как преподают, особенно в начале, вы наверняка знаете), вот по этому прошу помощи в написании кода на Дэлфи.

    Задача такова; написать программу, проводящую расчет времени (дней, часов, минут, секунд) между двумя датами учитывая все календарные правила (высокосный год, последние числа месяцов и т. д.). Формат даты: 15.01.2000 14:37:52 (ДД. ММ. ГГГГ). Временные рамки 1960 г. - 2020 г.

    Пример: расчитать время между 01.01.2000 и 31.10.2009.
    Решение: между 01.01.2000 и 31.10.2009 N-коичество дней, N-количество часов, N-коичество минут, N-коичество секунд.

    Все. Буду благодарен всем за помощь в решении задачи. Спасибо.
     
    #1 Lord NightKon, 6.05.2009
    В последний раз редактировалось: 6.05.2009
  2. Gar|k

    Gar|k Moderator

    Регистрация:
    20.03.2009
    Сообщения:
    1 174
    Одобрения:
    266
    Репутация:
    82
    чето помнится писал прогу для вычисления дней до денюхи )

    Code:
    // походу возвращает скока дней - передаешь день 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... и тд

    гуру кодеры делфисты не ругайтеся - это лучше чем ничего! )
     
    _________________________
  3. zerokko

    zerokko Member

    Регистрация:
    28.03.2009
    Сообщения:
    46
    Одобрения:
    13
    Репутация:
    0
    Мля... Мне в 10 классе на 10 такую же задачку сказали решать, только реализация на паскале)))0 Задача была выполнена... могу найти код, если надо =)))
     
  4. Lord NightKon

    Lord NightKon Member

    Регистрация:
    26.03.2008
    Сообщения:
    28
    Одобрения:
    7
    Репутация:
    0
    2zerokko - однозначно нужно - пожалуйста посмотри код

    2Gar|k - спасибо за помощь, теперь есть от чего оттолкнуться
     
  5. W!z@rD

    W!z@rD Борец за русский язык

    Регистрация:
    12.02.2006
    Сообщения:
    994
    Одобрения:
    289
    Репутация:
    43
    прикольные у вас курсачи, укладываются в одну строку... =\
    Преподы отжигают.

    PHP:
    ShowMessage(intToStr(DaysBetween(StrToDate(Edit1.Text), StrToDate(Edit2.Text))));
    P.S. не забудь подключить стандартный модуль DateUtils;

    Проверял в Delphi 7
     
    Это одобряют 2 пользоветелей.
  6. Lord NightKon

    Lord NightKon Member

    Регистрация:
    26.03.2008
    Сообщения:
    28
    Одобрения:
    7
    Репутация:
    0
    нужно ещё и время выщитать
     
  7. Algol

    Algol New Member

    Регистрация:
    29.05.2002
    Сообщения:
    1 761
    Одобрения:
    3
    Репутация:
    0
    Не учитываются високосные годы и поправки григорианского календаря.
     
  8. W!z@rD

    W!z@rD Борец за русский язык

    Регистрация:
    12.02.2006
    Сообщения:
    994
    Одобрения:
    289
    Репутация:
    43
    нет, однако наглые студенты.

    не хватает сил посмотреть какие функции содержит модуль DateUtils???
     
  9. /^scriptor$/

    /^scriptor$/ New Member

    Регистрация:
    11.04.2009
    Сообщения:
    13
    Одобрения:
    0
    Репутация:
    0
    год високосный если, если остаток от деления на 4 равен нулю
     
Загрузка...
Similar Threads - Delphi Расчет времени
  1. triblekill
    Ответы:
    5
    Просмотры:
    793
  2. Redfern89
    Ответы:
    1
    Просмотры:
    789
  3. triblekill
    Ответы:
    5
    Просмотры:
    775
  4. FunOfGun
    Ответы:
    3
    Просмотры:
    633