发布于 2006-06-04 14:36:11
0楼
不好意思,刚才一时患糊涂了,忘了直接就可以把代码贴上来。
cDateAdd(SYSTEMTIME st )
{
unsigned year,month,day,hour,minute,second;
int i,j,k;
int ysum=0,msum=0,hsum=0;
time_t timer;
struct tm *ptm;
year=st.wYear;
month=st.wMonth;
day=st.wDay;
hour=st.wHour;
minute=st.wMinute;
second=st.wSecond;
for(i=5;i<(year-2000);i++)
{ysum=ysum+365; }
for(i=5;i<(year-2000);i++)
{hsum=hsum+24;
i=i+3;
}
k=year-2000;
if((k==5)(k==9)(k==13)(k==17)(k==21)(k==25)(k==29)(k==33)(k==37)(k==41)(k==45)(k==49)(k==53)) {ysum=ysum+0;}
else if((k==57)(k==61)(k==65)(k==69)(k==73)(k==77)(k==81)(k==85)(k==89)(k==93)(k==97)(k==101)) {ysum=ysum+0;}
else {ysum=ysum-1;}
switch(month-1)
{
case 1 : msum=31; break;
case 2 : msum=59; break;
case 3 : msum=90; break;
case 4 : msum=120; break;
case 5 : msum=151; break;
case 6 : msum=181; break;
case 7 : msum=212; break;
case 8 : msum=243; break;
case 9 : msum=273; break;
case 10: msum=304; break;
case 11: msum=334; break;
}
if(month>2)
{
switch(year-2000)
{
case 8 :msum=msum+1;break;
case 12 :msum=msum+1;break;
case 16 :msum=msum+1;break;
case 20 :msum=msum+1;break;
case 24 :msum=msum+1;break;
case 28 :msum=msum+1;break;
case 32 :msum=msum+1;break;
case 36 :msum=msum+1;break;
case 40 :msum=msum+1;break;
case 44 :msum=msum+1;break;
case 48 :msum=msum+1;break;
case 52 :msum=msum+1;break;
case 56 :msum=msum+1;break;
case 60 :msum=msum+1;break;
case 64 :msum=msum+1;break;
case 68 :msum=msum+1;break;
case 72 :msum=msum+1;break;
case 76 :msum=msum+1;break;
case 80 :msum=msum+1;break;
case 84 :msum=msum+1;break;
case 88 :msum=msum+1;break;
case 92 :msum=msum+1;break;
case 96 :msum=msum+1;break;
case 100 :msum=msum+1;break;
}
}
timer=((11323+1461+ysum+msum+day-1)*24-8)*3600+hour*3600+minute*60+second+hsum*3600;
timer=timer-3600*8;
ptm=localtime(&timer);
return ptm;
}
一等二靠三落空,一想二干三成功