Автор
|
Тема: Вопрос по датам
|
Finder |
опубликован 24-10-2001 12:23 MSK
Как можно получить разницу в днях от двух дат? Типа: Кол_дней = Тек_дата - Старая_дата
|
Lord_DEMON
|
опубликован 24-10-2001 12:32 MSK
Написать руками :)) соответствующую прогу :) все, что надо - это выбрать начальную точку, и от нее подсчитать сколько прошло дней до одной даты и до другой :) |
Finder
|
опубликован 24-10-2001 12:41 MSK
Тоесть стандартными средствами никак? Был примерчик на жабе, где предлагалось через подсчет милисекунд. Но результат получился кривой какой-то :( |
Lord_DEMON
|
опубликован 24-10-2001 12:51 MSK
к сожалению я не в курсе, есть ли в С++ что нить подобное... Ну а руками то писать - дело 20 минут :) |
Finder
|
опубликован 24-10-2001 12:59 MSK
Накинь, плз, примерчик. А то я что-то не очень понял. |
Flex Ferrum
|
опубликован 24-10-2001 13:22 MSK
Все очень просто (если даты хранятся в виде time_t):time_t to_time = someTime; time_t from_time = time(NULL); int diff = difftime(from_time, to_time) / (3600 * 24); |
Lord_DEMON
|
опубликован 24-10-2001 13:56 MSK
Спасибо Flex! не знал :) Есть еще CTime. |
Finder
|
опубликован 24-10-2001 14:17 MSK
Спасибо! А для СOleDateTime есть что-то подобное? |
Flex Ferrum
|
опубликован 24-10-2001 14:27 MSK
В MSDN должно быть написано |
SUnteXx
|
опубликован 24-10-2001 14:59 MSK
2 Finder. Проверь свое мыло! Я кинул пример! Если письмо не дошло, мыль мне! |
Finder
|
опубликован 24-10-2001 15:39 MSK
Вложение не дошло. |
SUnteXx
|
опубликован 24-10-2001 15:47 MSK
А щаз? |
Finder
|
опубликован 24-10-2001 15:51 MSK
Ok! Спасибо! |
m_fox
|
опубликован 24-10-2001 16:56 MSK
В 1с такая хрень реализована через Дата1-Дата2 :)Но сама 1с - полный отстой... |
Finder
|
опубликован 24-10-2001 17:22 MSK
Да и в Клиппере даже можно Date1 - Date2, а в VC++ в результате "01/01/1899" (и не понятно почему именно такая дата) |
migel
|
опубликован 24-10-2001 18:54 MSK
COleDateTimeSpan есть такой класс - как раз для разростей дат придуман вот пример COleDateTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999 COleDateTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999 // Subtract 2 COleDateTimes COleDateTimeSpan ts = t2 - t1; // one day is 24 * 60 * 60 == 86400 seconds ASSERT( ts.GetTotalSeconds() == 86400L ); // Add a COleDateTimeSpan to a COleDateTime. ASSERT( ( t1 + ts ) == t2 );
|
gecky
|
опубликован 24-10-2001 21:11 MSK
а ещё есть функция GetSystemTime она заполняет структуру SYSTEMTIME. Тама дни, час... мсек |
Finder
|
опубликован 25-10-2001 12:40 MSK
Всем огромное спасибо за помощь! |