一个匪夷所思的问题,请高手赐教,急!!!!!!!!!!!!!!
#include<iostream>
#include<time.h>
using namespace std;
int main()
{
struct tm *tt,*middle_tm,temp_tm;
time_t yy;
time(&yy);
tt = localtime(&yy);
middle_tm = localtime(&yy);
temp_tm.tm_sec = middle_tm->tm_sec;
temp_tm.tm_min = middle_tm->tm_min;
temp_tm.tm_hour = middle_tm->tm_hour;
temp_tm.tm_mday = middle_tm->tm_mday;
temp_tm.tm_mon = middle_tm->tm_mon;
temp_tm.tm_year = middle_tm->tm_year;
temp_tm.tm_wday = middle_tm->tm_wday;
temp_tm.tm_yday = middle_tm->tm_yday;
temp_tm.tm_isdst = middle_tm->tm_isdst;
//printf("%d\n",tt->tm_yday);
//printf("%d\n",tt->tm_mday);
struct tm start_tm;
//指定日期
start_tm.tm_year = 2006-1900;
start_tm.tm_mon = 0;
start_tm.tm_mday =1;
char str[4];
time_t time_11 = mktime(&start_tm);
////////////////////////////////////
/***************注意下面这个输出语句:*********************/
cout<<ctime(&time_11)<<endl;
///////////////////////////////////
struct tm time11 = *localtime(&time_11);
memset(str,0,sizeof(str));
strftime(str,sizeof(str),"%U",&time11);
int iWeek11 = atoi(str);
if(iWeek11==0)
{
printf("111111111111111\n");
}
cout<<"iweek11:"<<iWeek11<<endl;
memset(str,0,sizeof(str));
strftime(str,sizeof(str),"%U",&temp_tm);
int iWeek = atoi(str);
printf("Week=%d\n",iWeek);
return 0;
}
同样的以上代码,分别放在IBM和SUN的UNIX下居然会出现2个不同的结果
IBM 输出:Fri Jul 4 16:20:15 2014(错误)
SUN 输出:Sat Jan 1 00:00:00 2000(正确)
本人处于极度郁闷中,请高手赐教!