关于日期处理的简单问题! 转换字串到日期用以下函数:dim strDate as stringstrdata="1998/06/03"format(CDate(strDate),vblongdate)=1998年6月3日 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不好意思,一点小错应该是:format(CDate(strDate),"vblongdate")=1998年6月3日 这样就行了,我保证没问题。Z = Format(CDate(X), "yyyy年mm月dd日") 问题是输入的多样性只要输入IsDate() 通过就行September,1994Oct,199712/9899-12-311997年11月怎么判断啊? 你什么都不想判断,你又要求高,谁也做不到。这样的问题用不着花太多的精力来对待。如果你的程序是在中国使用,没有人会输入Semptember,1998这样的日期,也不大会有人输入1998年12月21日这样的日期,一般只会输入19981231或者1998/12/31。如果你为了严格,可以强制按照某种格式输入,或者可以用日期控件。总之有很多办法。就是系统提供的有些函数,比如CDate,也是做了很多判断的。比如,你输入11/12,你说是11月12日还是12月11日?CDate是按照11月12日来转换的。这也说明,系统函数也是有强制的,或者说约定的。如果你也允许用户这样输入,请问,你怎么判断?不强制输入格式,又想永远得到正确的内容是不可能的,永远不可能! 其实不是这个意思我只要想知道输入的成分中包含了日期没有,或者说通过什么办法判断一个日期字符串中是否包含了日期。简单的说1998-9 和 1998-9-1 的区别September 1,1998 和 September,1998 的区别等等输入的日期格式并不重要 我们的意思是强制用户使用一种格式输入,你就可以减少很多判断,因为datapicker控件这个控件是VB6的控件,使用鼠标输入日期,格式是固定的,所以会减少很多代码工作量,你看呢?而且现在很多用户也习惯鼠标(我的用户中习惯鼠标的,比熟键盘的多得多),我一直以为VB的长处在于快速编程,象你说的这个问题思考一下可以,但太纠缠了就钻了牛角尖。我对数据库熟,如果这种格式输入数据库的话,数据库也是根据计算机上控制面板中的日期格式来进行判断的。你打开一个ACCESS库新建一个日期字段试试就知道了。------我们大家话说得重了点吧?呵呵。我可没有你那么好学哦! 我知道你的意思。因爲中国人的输入习惯,我想知道用户输入的日期是指定到某一天还是某一个月如:我要的是“发案时间”,可能是1998年9月(不知道那一天),也可能是1998年9月1日(确定的日期),如何在用户输入的时候区分他们。用户输入了 1998-9 当然是指月份而不是日期用户输入了 1998-9-1 当然是指日期而不是指月份但在日期类型之中 Day()函数都返回 1如何区别他们这两种输入都是合法的阿。 其实问题在于,当得到的日期是某年某月的一日的时候,你不知道到底用户输入的是月份还是年月日都输入了。如果这样,我们就把问题简单化:假设 dateStr是用户输入的日期字符串 DateFld是你转换后获得的日期变量是否可以这样:当Day(DateFld)=1的时候,获得DateStr中所有的1。如果没有1,则:DateFld = # CStr(Year(DateFld) & "-" & CStr(Month(DateFld)) #如果有1,则看看其是否与分割符相邻(如果左相邻,则右边不能有除分隔符以外的字符;如果右相邻,则左边不能有分隔符以外的字符),若如此,则日期不变,否则:DateFld = # CStr(Year(DateFld) & "-" & CStr(Month(DateFld)) # 确实疏忽了一月这个问题。如果你限制了用户输入日期的格式,那么判断起来就简单了。假如你只允许用户输入yyyy/mm,和yyyy/mm/dd这两种格式,去掉日期字符串的左边5个字符,然后找“/”(分隔符)是否存在,如果不存在,就把日期中的日子去掉。 xxfeiyu(潇湘飞雨) 老弟,我们大家看到你的帖子,就帮你想想如何解决。或许没有考虑周全。言语之中,或许说得不甚客气圆润,但总算是在帮你。听你上面贴子的语气,似乎在较劲。在看出漏洞后,略带讽刺地反诘。从技术角度来说,我上一个帖子的办法有漏洞,如果能给你提示,也算对你有帮助,如果已经是你抛弃的方法,那你也就一笑了之吧。大家在此相互切磋,共同进步。如果我误会了你,还望你谅解。 如何在picture里面播放avi视频?如何从picture中直接提取某刻图像对其操作? ADO 连接 access 数据库 的问题 …………搞了N天也没搞明白…………走过路过不要错过(恳请) 奇怪的小错误(在线等,急急急) 快来呀,看看当今开发什么软件最赚钱 请问如何将数字转换成英文,急! 网络初学者:如何实现数据重现 高手请回答,已经问了两次了没有人回答? 看看这个问题除了能难住我还能难住谁? 我想在vb程序中备份、还原数据库,遇到一些问题,求解!!!! 这样不行吗? 谁要下载msdn?
应该是:
format(CDate(strDate),"vblongdate")=1998年6月3日
只要输入IsDate() 通过就行
September,1994
Oct,1997
12/98
99-12-31
1997年11月
怎么判断啊?
我只要想知道输入的成分中包含了日期没有,
或者说通过什么办法判断一个日期字符串中是否包含了日期。
简单的说
1998-9 和 1998-9-1 的区别
September 1,1998 和 September,1998 的区别
等等
输入的日期格式并不重要
我们大家话说得重了点吧?呵呵。我可没有你那么好学哦!
因爲中国人的输入习惯,我想知道用户输入的日期是指定到某一天还是某一个月
如:
我要的是“发案时间”,可能是1998年9月(不知道那一天),也可能是1998年9月1日(确定的日期),如何在用户输入的时候区分他们。
用户输入了 1998-9 当然是指月份而不是日期
用户输入了 1998-9-1 当然是指日期而不是指月份
但在日期类型之中 Day()函数都返回 1
如何区别他们
这两种输入都是合法的阿。
假设 dateStr是用户输入的日期字符串
DateFld是你转换后获得的日期变量
是否可以这样:
当Day(DateFld)=1的时候,获得DateStr中所有的1。
如果没有1,则:DateFld = # CStr(Year(DateFld) & "-" & CStr(Month(DateFld)) #
如果有1,则看看其是否与分割符相邻(如果左相邻,则右边不能有除分隔符以外的字符;如果右相邻,则左边不能有分隔符以外的字符),若如此,则日期不变,否则:DateFld = # CStr(Year(DateFld) & "-" & CStr(Month(DateFld)) #
假如你只允许用户输入yyyy/mm,和yyyy/mm/dd这两种格式,去掉日期字符串的左边5个字符,然后找“/”(分隔符)是否存在,如果不存在,就把日期中的日子去掉。
我们大家看到你的帖子,就帮你想想如何解决。或许没有考虑周全。言语之中,或许说得不甚客气圆润,但总算是在帮你。
听你上面贴子的语气,似乎在较劲。在看出漏洞后,略带讽刺地反诘。
从技术角度来说,我上一个帖子的办法有漏洞,如果能给你提示,也算对你有帮助,如果已经是你抛弃的方法,那你也就一笑了之吧。
大家在此相互切磋,共同进步。如果我误会了你,还望你谅解。