Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C++ time.h

22K
23 декабря 2007 года
SMiX
18 / / 23.05.2007
Пишу курсовую на тему "Ежедневник". Столкнулся со следующей проблемой:
 
Код:
t_m = new tm;
          cout<<"God: ";
          cin>>t_m->tm_year;
          cout<<"Mesyatc: ";
          cin>>t_m->tm_mon;
          cout<<"Den: ";
          cin>>t_m->tm_mday;
          cout<<asctime(t_m);

Выводит
 
Код:
Sun January 06 00:845699368:845699368 3907

Если приравняьь все поля структуры к нулю(кроме года, месяца и дня), получается следующее:
 
Код:
t_m->tm_sec=t_m->tm_min=t_m->tm_hour=t_m->tm_wday=t_m->tm_yday=0;

 
Код:
Sun January 06 00:00:00 3907

Всеравно совсем не то. Предполагаю, что дело в t_m->tm_yday, его обязательно считать вручную?..
1.6K
23 декабря 2007 года
Vov4ick
476 / / 01.02.2007
Надо вызвать функцию получения времени
 
Код:
time_t curtime;
t_m* timestr;
time (curtime); или curtime=time(NULL);
t_m=localtime(curtime);
22K
23 декабря 2007 года
SMiX
18 / / 23.05.2007
Дело в том, что дату должен вводить пользователь
320
23 декабря 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: SMiX
Дело в том, что дату должен вводить пользователь


В чем проблема ? Вводи дату.Была недавно тема по установке системной даты и времени.посмотри может пригодится.

22K
24 декабря 2007 года
SMiX
18 / / 23.05.2007
Цитата:
Была недавно тема по установке системной даты и времени.посмотри может пригодится.


Мне нужно использовать только time.h, а там, как я понял, используется винапи.

Цитата:
В чем проблема ? Вводи дату.


Так я, вроде, и ввожу... Но что-то у меня криво, не пойму что. Код в первом сообщении.

1.6K
24 декабря 2007 года
Vov4ick
476 / / 01.02.2007
Я не уверен, что это cout<<asctime(t_m) правильно работает
В справке делают используя промежуточную строку.
 
Код:
char str[80];
...
strcpy(str, asctime(&t));
printf("%s\n", str);
22K
24 декабря 2007 года
SMiX
18 / / 23.05.2007
Всеравно выводится тот же бред...
1.6K
24 декабря 2007 года
Vov4ick
476 / / 01.02.2007
Полный пример из бц
видимо цин криво определяет тип данных. Никогда они мне не нравились...
Код:
#include <stdio.h>
  #include <string.h>
  #include <time.h>

  int main(void)
  {
     struct tm t;
     char str[80];

     /* sample loading of tm structure  */

     t.tm_sec    = 1;  /* Seconds */
     t.tm_min    = 30; /* Minutes */
     t.tm_hour   = 9;  /* Hour */
     t.tm_mday   = 22; /* Day of the Month  */
     t.tm_mon    = 11; /* Month */
     t.tm_year   = 56; /* Year - does not include century */
     t.tm_wday   = 4;  /* Day of the week  */
     t.tm_yday   = 0;  /* Does not show in asctime */
     t.tm_isdst  = 0;  /* Is Daylight SavTime; does not show in asctime */
 
     /* converts structure to null terminated string */

     strcpy(str, asctime(&t));
     printf("%s\n", str);

     return 0;
  }
22K
24 декабря 2007 года
SMiX
18 / / 23.05.2007
Спасибо, проблема была из-за того, что я вводил год четырехзначным счислом. Но теперь появилась другая незадача... Как ввести 200x год? Ввожу 07 - получается 1907
22K
24 декабря 2007 года
SMiX
18 / / 23.05.2007
Проблема решена.
Нужно из вводимого года(четырхзначное число) вычитать 1900
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог