一个匪夷所思的问题,请高手赐教,急!!!!!!!!!!!!!!

hwpass 2006-12-14 07:10:26
#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(正确)

本人处于极度郁闷中,请高手赐教!
...全文
181 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwpass 2006-12-15
  • 打赏
  • 举报
回复
to wzzww(无知者无畏)(此人已死) :
谢谢良言,本人小菜一个,发贴总数才3,诸多不了解,请理解哈~
to x86(大雪) :
谢谢,我也发现到了这个问题,谢谢你~
x86 2006-12-15
  • 打赏
  • 举报
回复
在我这里显示的是
Wed Dec 31 16:59:59 1969

原因是你的start_tm赋值不完全,需要所有的域都赋初值,否则mktime会失败,而time_11的值是-1。

你可以这样:
struct tm start_tm = temp_tm;

这样start_tm的每个域会自动复制。
无知者无谓 2006-12-15
  • 打赏
  • 举报
回复
另外想说一下,不要贴这么多无用的信息出来,总共就几行代码是相关的,你贴了1大段,不是每个人都很有时间来看你的无用代码的。
无知者无谓 2006-12-15
  • 打赏
  • 举报
回复
你看看函数说明,time()获得的时间在各个系统上有可能不一样,计数的起始时间可能不一样
另外建议你看看struct tm结构定义,注意你的月份
hwpass 2006-12-15
  • 打赏
  • 举报
回复
up!!!

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧