?? gatetime.cpp
字號:
/******************************************************************
* Copyright (c) 2004-2005, 許繼日立公司
* All rights reserved.
*
* 文件名稱:gatetime.cpp
* 文件標(biāo)識:
* 摘 要:時間計算類
*
* 當(dāng)前版本:1.0
* 作 者:李龍偉 <lilongwei1@hotmail.com>
* 完成日期:2004年12月24日
*
* 取代版本:1.0
* 原作者 :李龍偉
* 完成日期:2004年12月24日
******************************************************************/
#include <stdio.h>
#include <stdlib.h>
//#include "datadef.h"
#include "gatetime.h"
PansTime::PansTime()
{
}
PansTime::~ PansTime()
{
}
bool PansTime::GetCurTime(SYSTEMTIME *systime)
{
GetLocalTime(systime);
return TRUE;
}
void PansTime::TimeAdd(SYSTEMTIME *systime, int iSec)
{
time_t tt;
tt = time(NULL);
struct tm *stm;
tt += iSec;
stm = localtime(&tt);
systime->wYear = stm->tm_year+1900;
systime->wMonth = stm->tm_mon+1;
systime->wDay = stm->tm_mday;
systime->wHour = stm->tm_hour;
systime->wMinute = stm->tm_min;
systime->wSecond = stm->tm_sec;
}
bool PansTime::DateAdd(SYSTEMTIME *systime, int iday)
{
short wy, wm, wd;
long lday;
short i;
wy = systime->wYear;
wm = systime->wMonth;
wd = systime->wDay;
lday = 365 * (wy-1901) + (wy-1901) / 4 + wd;
for (i=1; i<wm; i++)
{
if (i != 2)
{
if (i==4 || i==6 || i==9 || i==11)
{
lday += 30;
}
else
{
lday +=31 ;
}
}
else
{
if ((wy % 4) == 0)
{
lday +=29;
}
else
{
lday +=28;
}
}
}
lday +=iday;
wy = (lday / 365) / 4;
wd = lday % 365;
systime->wYear =(lday/365)+1901;
if (wd==wy)
{
systime->wYear --;
systime->wMonth = 12;
systime->wDay = 31;
return TRUE;
}
else if (wd > wy)
{
wd -= wy;
}
else
{
systime -> wYear--;
wd = wd - wy + 365;
if ((systime -> wYear) % 4 == 0)
{
wd++;
}
}
for (i=1; i<13; i++)
{
if (i != 2)
{
if (i==4 || i==6 || i==9 || i==11)
{
if (wd > 30)
{
wd -= 30;
}
else
{
break;
}
}
else
{
if (wd > 31)
{
wd -=31 ;
}
else
{
break;
}
}
}
else
{
if ((systime -> wYear % 4) == 0 )
{
if (wd > 29)
{
wd -= 29;
}
else
{
break;
}
}
else
{
if (wd > 28)
{
wd -= 28;
}
else
{
break;
}
}
}
}
systime->wMonth = i;
systime->wDay = wd;
return TRUE;
}
/*
void main(int argc,char *argv[])
{
SYSTEMTIME nowtime;
int i;
PansTime pt;
pt.GetLocalTime(&nowtime);
printf("%d %d %d %d %d %d %d \n",nowtime.wYear,nowtime.wMonth,nowtime.wDay,
nowtime.wHour,nowtime.wMinute,nowtime.wSecond,nowtime.wHundsec);
if(argc!=5)
{
nowtime.wYear = 1904;
nowtime.wMonth = 1;
nowtime.wDay = 1 ;
i=-1;
}
else{
nowtime.wYear = atoi(argv[1]);
nowtime.wMonth = atoi(argv[2]);
nowtime.wDay = atoi(argv[3]);
i = atoi(argv[4]);
printf("%d %d %d %d\n",nowtime.wYear,nowtime.wMonth ,nowtime.wDay,
atoi(argv[4]));
}
pt.DateAdd(&nowtime,i);
printf("%d %d %d \n",nowtime.wYear,nowtime.wMonth ,nowtime.wDay);
struct timespec tp;
clock_gettime(CLOCK_REALTIME,tp);
}
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -