月份和日期格式化为两位数-许积云
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


月份和日期格式化为两位数

发表时间:2007/11/1 8:52:32 评论(0) 浏览(20221)  评论 | 加入收藏 | 复制
   
摘 要:Right("0" & Month(Date()),2) 

Right("0" & Day(Date()),2) 

正 文:
今天看到群里有人提问,上次培训开发的“报销管理软件”中存在BUG,就是由日期产生的编号问题。

原来的VBA代码如下:
    '生成编号前缀,格式为M200611
    YM = "M" & Year(Date) & Month(Date)
可是在新年过后,代码运行出现了问题,不产生诸如“200701”的编号,却是“20071”?!

VBA编程语言中,有个FORMAT函数,倒是可以解决这个问题
    YM = "M" & Year(Date) & Format(Month(Date), "00")
这样,产生的编号就会自动在月份前补0了。

本来呢,到这里问题已经解决就OK了,可是偏我又常使用ASP进行编程,也存在类似的问题,可是asp中没有FORMAT函数,怎么办?

上网找找吧。

=============

vbscript格式化日期格式中的月份和日期为两位数字

原文内容:

今天改一个生成id的函数,要求以yyyymmdd的形式产生id,但是vbscript中产生的日期格式可能会成为yyyymd的形式,也就是去掉了高位上的0,查找了vbscript的日期和时间函数,没找到合适的函数。

以前曾经做过类似的东西,大概是判断数字是否小于10,然后追加前导0。(刚看了点算法的东西,顺便用一下,咱也来写个伪代码:P)

 

 

//date()为获得当前日期的函数,默认格式yyyy-mm-dd   mm和dd可能只有个位数字

//year(),month(),day()是从日期中抽取相应的数字

//strID就是要得到的结果了

strID=year(date())&formatStr(month(date()))&formatStr(day(date()))

formatStr(m)

//m为要格式化的数字

if cInt(m)<10

  m=0&cInt(m)

return m

哈哈,这就是一个算法的伪代码了

这样实现很直接,下面有更直接的,直接提取十位数字跟个位数字,然后拼起来就行了。

伪代码:

formatChar(m)

  m=fix(m/10)&(m-fix(m/10)*10)

return m

其实差不多,只是下面这个可以不用写函数,直接写在一行里面就行了。

strid=year(date())&fix(month(date())/10)&(month(date())-fix(month(date())/10)*10)&fix(day(date())/10)&(day(date())-fix(day(date())/10)*10)

==================
以上这个太烦了,仅做为参考。

个人认为还是下面这个好用,简单易用:

today=Year(Date()) & "-" & Right("0" & Month(Date()),2) & "-" & Right("0" & Day(Date()),2)
 
============================
记住了:
Right("0" & Month(Date()),2) 
Right("0" & Day(Date()),2) 

Access软件网交流QQ群(群号:198465573)
 
 相关文章
Format集合\Format函数大全\Format整理\acce...  【UMVsoft整理  2009/5/23】
【菜鸟入门】日期格式分开显示\年月日单独显示\提取年月日的示例\显...  【Access软件网整理  2011/2/10】
【access入门】从日期时间格式里面提取日期值\返回年月函数\提...  【麥田  2011/3/9】
Access选择年月日的傻瓜工具  【麥田  2012/8/14】
【Access入门】两种方法提取年份的示例,Format函数提取年...  【麥田  2012/11/4】
Format$与Format的区别  【麥田  2013/9/5】
常见问答
技术分类
相关资源
文章搜索
关于作者

许积云

文章分类

文章存档

友情链接