Подсчет дней за определенный период.

Тема в разделе "LANGS.C", создана пользователем serega28, 27 июл 2009.

  1. serega28

    serega28 Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    115
    Адрес:
    Minsk
    Есть ли алгоритмы подсчета количества дней:

    1. Узнать сколько будет дней с 18.02.2009 по 28.10.2010
    2. Какое число будет через 65 дней от 21.06.2009

    Как это вообще вычислять учитывая и високосные года?
     
  2. reversecode

    reversecode Guest

    Публикаций:
    0
    посмотри библиотеку QT
    на предмет QDateTime класса

    зы
    функции есть с учетом высокосных годов итд
     
  3. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    ...А если нет желания связываться с монструозными либами, достаточно спросить у Яндекса, что такое "юлианский день" и как его вычисляют. Формулы очень простые, только целочисленная арифметика в две или три строчки. Через те же юлианские дни кроме интервалов между датами вычисляется и день недели на произвольную дату.
     
  4. serega28

    serega28 Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    115
    Адрес:
    Minsk
    Всё спасибо.
    Тема закрыта.
     
  5. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    serega28
    нет
    пользуй Boost, там и вес не большой и доки класснык
     
  6. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Код (Text):
    1. #include <iostream>
    2. #include "boost/date_time/gregorian/gregorian.hpp"
    3.  
    4. using namespace boost::gregorian;
    5.  
    6. int main(int argc, char* argv[])
    7. {
    8.     // 1. Узнать сколько будет дней с 18.02.2009 по 28.10.2010
    9.     date_period d(date(2009, Feb, 18), date(2010, Nov, 28));
    10.  
    11.     std::cout << d.length();
    12.  
    13.     // 2. Какое число будет через 65 дней от 21.06.2009
    14.     d = date_period(date(2009, Jun, 21), days(65));
    15.  
    16.     std::cout << d.last();
    17.  
    18.     return 0;
    19. }
     
  7. reversecode

    reversecode Guest

    Публикаций:
    0
    топик стартер имел ввиду алгоритм как это вычисляеться

    зы
    буст нафиг с его темплейтами так же как и stl
     
  8. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Хорошо, сегодня вечером всё сотру.