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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 178
#1

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

06.03.2013, 21:26. Просмотров 547. Ответов 3
Метки нет (Все метки)

Всем привет в общем есть такая задача,нужно с даты,скажем 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 минут
будут какие-то идеи,или это и есть единственный способ и реализация?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 21:26     Время прошедшее с определённой даты
Посмотрите здесь:

Подсчитать количество за определенное прошедшее время - C++
Помогите с алгоритмом для такой задачи. Код не нужен, но можно описать словами. Представим одностороннюю дорогу, по которой постоянно...

Дано число t, означающее время в минутах прошедшее с начало очередного часа. Определить цвет сигнала светофора - C++
Вобщем, задача такая: Работа светофора для водителей запрограммирована следующим образом: начиная с начала каждого часа в течении 3 минут...

Как узнать, сколько секунд прошло с 1 января 1970 гда до определённой даты? - C++
Если дата текущая, то это значение можно получить так: /* time example */ #include <stdio.h> #include <time.h> int main () { ...

На основе введенной даты рождения и текущей даты сообщить пользователю, сколько он прожил дней - C++
3. Написать программу, которая на основе введенной даты рождения и текущей даты сообщает пользователю, сколько он прожил дней. Принять во...

Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты - C++
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты.

Чтение определённой строки. - C++
Тема такая, программа принимает два аргумента - первый путь к файлу, второй - любую строку (str1). Задача - искать в указанном файле...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 178
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2013, 20:04     Время прошедшее с определённой даты
Еще ссылки по теме:

Doxygen из определённой папки - C++
Есть папка include. Doxyfile находиться в не папки. Что надо поменять в файле, чтоб он делал документацию, используя файлы в папке?...

Удаление и редактирование определённой строки - C++
Задание- словарь синонимов, в нём нужно осуществить удаление и редактирование определённой строки в файле в m1 находит синоним, в m2 -...

istream - считывание определённой строки - C++
Всем привет. Помогите плз. Например у меня есть текстовый файл, в котором написанно: Many Big Pig Best Sick как в string,...

Удаление определённой строки из файла - C++
Здравствуйте, меня интересует такой вопрос - как удалить определённую строку из файла, если я знаю её номер ?

Вычисление конечного значения с определённой точностью - C++
Добрый вечер, уважаемые программисты. Хочу попросить у вас помощи с программой. Не могу понять, куда привязать точность. Спасибо!

Нужен алгоритм нахождения определённой k-ой цифры - C++
Задача : в последовательности квадратов всех натуральных чисел нужно найти определённую k-ую цифру Важное условие: задача решается только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 178
02.04.2013, 20:04  [ТС]     Время прошедшее с определённой даты #4
IrineK, меня интересует разница ещё в годах и месяцах а подсчитать с помощью этого примера не получится корректно.
Yandex
Объявления
02.04.2013, 20:04     Время прошедшее с определённой даты
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru