首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

现成的能处理日期和时间的函数或者class

2012-04-10 
求一个现成的能处理日期和时间的函数或者class要求有一个基准时间,如1900.1.1 0:00:00输入任意浮点数,如20

求一个现成的能处理日期和时间的函数或者class
要求有一个基准时间,如1900.1.1 0:00:00
输入任意浮点数,如2000.1213,则要输出2000.1213天之后的日期时间,即1905.06.22 02:54:40
同时支持反向的功能,即给出日期输出浮点数
日期的输出要用一个string show(string a)函数,其中a为分隔符,如a=" / ",则要输出1905 / 06 / 22 02:54:40
同时需要以XXXX.XX.XX XX:XX:XX为标准格式的operater =进行赋值


[解决办法]
COleDateTime
COleDateTimeSpan

C/C++ code
#include <afxdisp.h>#include <stdio.h>#include <stdlib.h>int main(int argc, TCHAR* argv[]) {    COleDateTime t;    COleDateTimeSpan ts;    CString s,fmt;    int nYear;    int nMonth;    int nDay;    int nHour;    int nMin;    int nSec;    int lDays;    int nHours;    int nMins;    int nSecs;    int i,N;    // initialize MFC and print and error on failure    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) {        printf("Fatal Error: MFC initialization failed\n");        return 1;    }    if (argc<13) {        printf("Usage:%s sYYYY sMM sDD shh smm sss pDD phh pmm pss n {SQL|YYYY|YY}\n",argv[0]);        return 2;    }    if (stricmp(argv[12],"SQL")==0) fmt="%Y-%m-%d %H:%M:%S";    else if (stricmp(argv[12],"YYYY")==0) fmt="%Y%m%d %H%M%S";    else if (stricmp(argv[12],"YY")==0) fmt="%y%m%d %H%M%S";    else {        printf("Usage:%s sYYYY sMM sDD shh smm sss pDD phh pmm pss n {SQL|YYYY|YY}\n",argv[0]);        return 3;    }    nYear =atoi(argv[ 1]);    nMonth=atoi(argv[ 2]);    nDay  =atoi(argv[ 3]);    nHour =atoi(argv[ 4]);    nMin  =atoi(argv[ 5]);    nSec  =atoi(argv[ 6]);    lDays =atoi(argv[ 7]);    nHours=atoi(argv[ 8]);    nMins =atoi(argv[ 9]);    nSecs =atoi(argv[10]);    N     =atoi(argv[11]);    if (N<=0) {        printf("Usage:%s sYYYY sMM sDD shh smm sss pDD phh pmm pss n {SQL|YYYY|YY}\n",argv[0]);        return 4;    }    t=COleDateTime( nYear, nMonth, nDay, nHour, nMin, nSec);    ts=COleDateTimeSpan( lDays, nHours, nMins, nSecs );    for (i=1;i<=N;i++) {        s=t.Format(fmt);        printf("%08d %s\n",i,s);        t=t+ts;    }    return 0;} 

热点排行