Форум программистов, компьютерный форум CyberForum.ru

Время прошедшее с определённой даты - C++

Восстановить пароль Регистрация
 
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 174
06.03.2013, 21:26     Время прошедшее с определённой даты #1
Всем привет в общем есть такая задача,нужно с даты,скажем 25.08.2003 посчитать кол-во прошедшего времени в формате дата время год,
пробовал делать так считал кол-во секунд с этого времени а потом делили на кол-во секунд в году
остаток на кол-во секунд в месяце,и ещё остаток на на секунд в днях,но это очень извращённый метод как по мне+ погрешность в 3 дня не ахти вышла.
можно ли как-то проще?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int year,date,month,minutes,secondsres;
            time_t now;
            struct tm firstdate;
            double seconds;
 
            time(&now);  /* get current time; same as: now = time(NULL)  */
 
            firstdate = *localtime(&now);
 
            firstdate.tm_year= 103;
            firstdate.tm_hour = 22; firstdate.tm_min = 0; firstdate.tm_sec = 0;
            firstdate.tm_mon = 8;  firstdate.tm_mday = 25; 
 
            seconds = difftime(now,mktime(&firstdate));
            double year_temp,month_temp;
            year_temp=seconds/31556926;
            year=seconds/31556926;
            month_temp=(year_temp-year)*31536000/ 2592000;
            month=(year_temp-year)*31536000/ 2592000;
            date=(month_temp-month)*2592000/86400;
Добавлено через 1 час 27 минут
будут какие-то идеи,или это и есть единственный способ и реализация?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 174
02.04.2013, 10:27  [ТС]     Время прошедшее с определённой даты #2
Вопрос актуален
IrineK
Заблокирован
02.04.2013, 11:12     Время прошедшее с определённой даты #3
Как-то всегда наоборот делала. Здесь фрагмент с подсчетом разницы между любыми двумя моментами времени:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int dif, dmin, dhour, dday;
    
    time_t now,st1,st2;
    struct tm *tt1,*tt2;
    time (&now);
    tt1 = localtime(&now);
    tt2 = localtime(&now);
 
    tt1->tm_mon = this->GetMonth()-1;
    tt1->tm_mday = this->GetDay();
    tt1->tm_hour = this->GetHour();
    tt1->tm_min = this->GetMinute();
    st1 = mktime(tt1);  //got time1 in seconds
 
    tt2->tm_mon = t.GetMonth()-1;
    tt2->tm_mday = t.GetDay();
    tt2->tm_hour = t.GetHour();
    tt2->tm_min = t.GetMinute();
    st2 = mktime(tt2);  //got time2 in seconds
 
    dif = st1-st2;              //difference in seconds
    dif /= 60;                  //difference in minutes
    dmin = dif%60;              //minutes in difference
    dif /= 60;                  //difference in hours
    dhour = dif%24;             //hours in difference
    dif /= 24;                  //difference in days
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 174
02.04.2013, 20:04  [ТС]     Время прошедшее с определённой даты #4
IrineK, меня интересует разница ещё в годах и месяцах а подсчитать с помощью этого примера не получится корректно.
Yandex
Объявления
02.04.2013, 20:04     Время прошедшее с определённой даты
Ответ Создать тему
Опции темы

Текущее время: 13:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru