| 作者 | 主题 |
|---|---|
|
瑞琦 游侠 经验值:471 发帖数:232 精华帖:2 |
楼主
主题:自编的北京时间-格林尼治时间转换的C函数
北京时间-格林尼治时间转换的C函数cDateAdd,能够实现从2005年-2100年的时间换算。
函数参数:cDateAdd(sysTime),返回一个结构类型的时间值。 使用方法: SYSTEMTIME sysTime; struct tm*ptm; ...(给sysTime赋值) ptm=cDateAdd(sysTime); ...(取出时间显示) (因为我没有上传附件权限,所以请城斑竹帮忙给附上来一下)
一等二靠三落空,一想二干三成功
|
|
瑞琦 游侠 经验值:471 发帖数:232 精华帖:2 |
楼
主题:回复:自编的北京时间-格林尼治时间转换的C函数
不好意思,刚才一时患糊涂了,忘了直接就可以把代码贴上来。
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; }
一等二靠三落空,一想二干三成功
|