循环,遇到-或回车就截取,先把日期的数值取出来,后面就简单了。或者用string及其函数截取
供参考:
#include <stdio.h>
#include <string.h>
#include <time.h>
class date{
public:
date(char *NewD);
date(int NewY,int NewM,int NewD);
date();
void show();
private:
int y,m,d;
};
date::date(char *NewD)
{
if( NewD != NULL && sscanf(NewD,"%d-%d-%d",&y,&m,&d)==3);
else
y = 0,m = 0,d = 0;
}
date::date(int NewY,int NewM,int NewD)
{
y = NewY; m = NewM; d = NewD;
}
date::date()
{
time_t t;
struct tm *lt;
time(&t);
lt = localtime(&t);//转为时间结构
y = lt->tm_year+1900; m = lt->tm_mon+1; d = lt->tm_mday;
}
void date::show()
{
printf("%d %d %d\n",y,m,d);
}
int main()
{
date d1,d2(2011,3,8),d3("2011-03-19");
d1.show();
d2.show();
d3.show();
return 1;
}