急需想知道在C++中,一个string要check它为date型(YYYYMMDD和YYYYMMDDHHMISS)可以使用什么方法?谢谢!

lovelyeyes 2002-03-22 11:42:41
谢谢!
...全文
54 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Last_Dodo 2002-03-23
  • 打赏
  • 举报
回复
在UNIX上有些库函数。你可以读一下strptime和getdate的manual page。MS WINDOWS我则一无所知。
ky640 2002-03-22
  • 打赏
  • 举报
回复
对YYYYMMDD型,取头四个字节,组成整数,看是不是有效年份,底下依次。
xiterator 2002-03-22
  • 打赏
  • 举报
回复
一个样例,全当抛砖引玉:
//DateChecker.h
struct DateChecker
{
static int dayTable[12];
public:
bool operator()(const char* b, const char* e) const
{
if((e-b)!=8) return false;
static StringChecker<DigitalChar> v;
if(!v(b,e)) return false;

int year=stringToLong(b, b+4, 10);
if(year<1979) return false;

int month=stringToLong(b+4, b+6, 10);
if(month<1||month>12) return false;

int day=stringToLong(b+6, e, 10);
if(day<1) return false;

if(month==2)
return (year-2000)%4==0? day<=29: day<=28;
return day<=dayTable[month-1];
}
bool operator()(const std::string& x) const
{
return (*this)(&x[0], &x[x.size()]);
}
};

//DateChecker.cpp
int DateChecker::dayTable[]={31,28,31,30,31,30,31,31,30,31,30,31};
lovelyeyes 2002-03-22
  • 打赏
  • 举报
回复
我找过了,可是没找到!
jimw 2002-03-22
  • 打赏
  • 举报
回复
看看MSDN吧
lovelyeyes 2002-03-22
  • 打赏
  • 举报
回复
到底有没有人知道?快帮帮忙!
lovelyeyes 2002-03-22
  • 打赏
  • 举报
回复
c++中是否有这种函数?
lovelyeyes 2002-03-22
  • 打赏
  • 举报
回复
怎么转化成日期类型,可不可以写个sample?
还有,正规表达式我也不会,能说详细一点吗?
jimw 2002-03-22
  • 打赏
  • 举报
回复
将它转换成日期类型,看是否成功。
fengye 2002-03-22
  • 打赏
  • 举报
回复
可以考虑用正规表达式
ky640 2002-03-22
  • 打赏
  • 举报
回复
先根据长度判断是哪一种类型;
年、月、时、分、秒都比较好判断,就日比较麻烦一点,不过也不是什么大麻烦。
lovelyeyes 2002-03-22
  • 打赏
  • 举报
回复
如果要把年月日分开check就太麻烦了,还要判断是否润年、月份也有大小月之分,有没有简单一点的方法呢?还有,时分秒又怎么check,也要分开吗?

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧