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);
C++ time.h
Код:
Выводит
Код:
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, его обязательно считать вручную?..
Код:
time_t curtime;
t_m* timestr;
time (curtime); или curtime=time(NULL);
t_m=localtime(curtime);
t_m* timestr;
time (curtime); или curtime=time(NULL);
t_m=localtime(curtime);
Дело в том, что дату должен вводить пользователь
Цитата: SMiX
Дело в том, что дату должен вводить пользователь
В чем проблема ? Вводи дату.Была недавно тема по установке системной даты и времени.посмотри может пригодится.
Цитата:
Была недавно тема по установке системной даты и времени.посмотри может пригодится.
Мне нужно использовать только time.h, а там, как я понял, используется винапи.
Цитата:
В чем проблема ? Вводи дату.
Так я, вроде, и ввожу... Но что-то у меня криво, не пойму что. Код в первом сообщении.
В справке делают используя промежуточную строку.
Код:
char str[80];
...
strcpy(str, asctime(&t));
printf("%s\n", str);
...
strcpy(str, asctime(&t));
printf("%s\n", str);
Всеравно выводится тот же бред...
видимо цин криво определяет тип данных. Никогда они мне не нравились...
Код:
#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;
}
#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;
}
Спасибо, проблема была из-за того, что я вводил год четырехзначным счислом. Но теперь появилась другая незадача... Как ввести 200x год? Ввожу 07 - получается 1907
Нужно из вводимого года(четырхзначное число) вычитать 1900