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

Как из даты вычесть дату? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.86
Olchik
 Аватар для Olchik
21 / 21 / 3
Регистрация: 31.07.2009
Сообщений: 133
16.03.2011, 22:25     Как из даты вычесть дату? #1
Продолжаю рисовать Вселенную, тема http://www.cyberforum.ru/cpp-beginne...ead258054.html (хотя это, впрочем, неважно). Нужно, вычислить, сколько дней прошло с заранее заданной даты до вводимого пользователем дня. Попыталась представить, как будет выглядеть функция, производящая такое вычисление, стало не по себе. Может, там (в с++(crl,wfa)) есть какие-нибудь стандартные функции для этого. Подскажите, пжлста, кто знает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2011, 22:25     Как из даты вычесть дату?
Посмотрите здесь:

даны два целых числа:Д(день) и М(месяц), определяющие правильную дату не высокосного года. Вывести значения D и M для даты, предшествующей указанной C++
C++ Как вычесть определенный элемент массива из другого массива?
Вычесть 3 часа из даты, заданной в формате string C++
Как поменять знак элементов матрицы, и как вычесть элементы одной строки из другой строки? C++
Как в бинарном дереве у всех листьев вычесть введенное число? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Subgrando
40 / 40 / 3
Регистрация: 28.01.2011
Сообщений: 175
16.03.2011, 22:40     Как из даты вычесть дату? #2
Текущее время можно получить через localtime(time(NULL)). Описано в "time.h".
Это структура tm.

Подробней можно почитать тут: http://www.cplusplus.com/reference/clibrary/ctime/
IrineK
Заблокирован
16.03.2011, 22:54     Как из даты вычесть дату? #3
Возможно, пригодится.
Используя time.h, считаем часы, пожитые со дня рождения по данный момент
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
27
28
29
30
#include <stdio.h>
#include <time.h>
 
int main ()
{
time_t rawtime, then, now;
struct tm * timeinfo;
int year,month, day, hour;
double dif;
 
 printf ("Enter year: "); scanf ("%d",&year);
 printf ("Enter month (number): "); scanf ("%d",&month);
 printf ("Enter day: "); scanf ("%d",&day);
 printf ("Enter hour: "); scanf ("%d",&hour);
 
time ( &rawtime );
timeinfo = localtime ( &rawtime );
timeinfo->tm_year = year - 1900;
timeinfo->tm_mon = month - 1;
timeinfo->tm_mday = day;
timeinfo->tm_hour = hour;
 
time (&now);
then = mktime (timeinfo);
dif = difftime (now, NULL) + difftime(NULL,then); //in seconds
 
dif = dif/3600.0;//in hours 
printf ("\n %10.1lf hours have passed by since\n",dif);
return 0;
}
Olchik
 Аватар для Olchik
21 / 21 / 3
Регистрация: 31.07.2009
Сообщений: 133
16.03.2011, 23:03  [ТС]     Как из даты вычесть дату? #4
Цитата Сообщение от Subgrando Посмотреть сообщение
Текущее время можно получить через localtime(time(NULL)). Описано в "time.h".
Это структура tm.

Подробней можно почитать тут: http://www.cplusplus.com/reference/clibrary/ctime/
это все, конечно, замечательно, но мне не нужно текущее время, мне нужно время, прошедшее с определенного момента до ЛЮБОГО заданного пользователем момента. но, в любом случае, спасибо, может потом как-нибудь пригодится.

Добавлено через 3 минуты
Цитата Сообщение от IrineK Посмотреть сообщение
да, похоже на то,что надо. СПАСИБО БОЛЬШОЕ. правда, я пока половину кода не понимаю....

А можно, используя time.h, получить не только текущую дату, но и другую какую-нибудь?
Yandex
Объявления
16.03.2011, 23:03     Как из даты вычесть дату?
Ответ Создать тему
Опции темы

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