| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:关于输入日期的判断?
只看楼主 加入收藏
youlivirgo
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-4-20
收藏
 问题点数:0 回复次数:2 
关于输入日期的判断?

我定义了一个关于日期的类。
但是我如何能限制输入的日期的格式一定为YYYY-MM-DD ;
否则我无法对日期进行判断。

class TimeTime
{
public:
TimeTime() ;
void displaydate() ;
bool isTimeValid(char *) ;

private:
char tmpbuf1[9] ; //获取的系统日期 YY/DD/MM
char tmpbuf2[11] ; //日期的另一形式 YYYY-MM-DD
char year[5] ;
char month[3] ;
char date[3] ;
} ;

TimeTime::TimeTime()
{
_strdate(tmpbuf1) ;
year[0] = '2' ;
year[1] = '0' ;
year[2] = tmpbuf1[0] ;
year[3] = tmpbuf1[1] ;
year[4] = '\0' ;
month[0] = tmpbuf1[6] ;
month[1] = tmpbuf1[7] ;
month[2] = '\0' ;
date[0] = tmpbuf1[3] ;
date[1] = tmpbuf1[4] ;
date[2] = '\0' ;
tmpbuf2[0] = '2' ;
tmpbuf2[1] = '0' ;
tmpbuf2[2] = year[2] ;
tmpbuf2[3] = year[3] ;
tmpbuf2[4] = '-' ;
tmpbuf2[5] = month[0] ;
tmpbuf2[6] = month[1] ;
tmpbuf2[7] = '-' ;
tmpbuf2[8] = date[0] ;
tmpbuf2[9] = date[1] ;
tmpbuf2[10] = '\0' ;
}

void TimeTime::displaydate()
{
cout << "\t日期: "<<year << "年" << month << "月" << date << "日" << endl ;
}

bool TimeTime::isTimeValid(char da[])
{
if (strcmp(tmpbuf2 , da) >= 0)
return true ;
else
return false ;
}

搜索更多相关主题的帖子: TimeTime 判断 char 定义 bool 
2006-05-23 14:15
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

为什么非要用字符呢?直接读取数字不行吗?


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-23 15:39
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
提个建议,首先用sscanf按照%d-%d-%d的格式取出年月日,因为取系统时间的库函数time或者MFC中的CTime对年的支持是1970到2038,所以你可以判断从输入中取出的年的范围不能在系统支持的时间之外(如果用_time64的话那么最大年份可以到3000年,又或者你可以自己定一个年的范围),然后判断月的范围不能大于12,日的范围不能大于31

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-23 16:13
快速回复:关于输入日期的判断?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011977 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved