时间的加减

superNANA_MUMU 2010-10-08 09:01:20
现在有时间变量

Public V04001 As Integer '年
Public V04002 As Integer '月
Public V04003 As Integer '日



当程序读到v04003=0的时候
日期将返回前一天 请问用v04001 v04002 v04003 怎么表示啊?


比如 (1)v04001=2010 v04002=1 v04003=0
v04001 v04002 v04003 就得重新赋值为 v04001=2009 v04002=12 v04003 =31

(2)v04001=2009 v04002=3 v04003=0
v04001 v04002 v04003 就得重新赋值为 v04001=2009 v04002=2 v04003 =28

数据都是随机的
...全文
58 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbman2003 2010-10-09
  • 打赏
  • 举报
回复


Dim v04001 As Integer, v04002 As Integer, v04003 As Integer
Dim dt As Date
v04001 = 2009: v04002 = 3: v04003 = 0
dt = DateSerial(v04001, v04002, v04003)
v04001 = Year(dt)
v04002 = Month(dt)
v04003 = Day(dt)
Debug.Print v04001; v04002; v04003
vbman2003 2010-10-09
  • 打赏
  • 举报
回复
日遇0返回前一天,用dateserial就行了:


'msgbox dateserial(v04001,v04002,v04003)
msgbox dateserial(2010,1,0)
贝隆 2010-10-09
  • 打赏
  • 举报
回复
我倒是觉得,楼主可以换一个思路,使用系统函数DateAdd来实现时间的加减,规范,标准。
gdttkx 2010-10-09
  • 打赏
  • 举报
回复
学习了
饮水需思源 2010-10-08
  • 打赏
  • 举报
回复
'用dateadd函数来实现(当前月的第一天减去一天则上月的最后一天)
dim tmp as string
dim tmpDate as date

if v04003=0 then
tmp=str(v04001) & "-" & str(v04002) & "-01"
tmpDate=dateadd(d,-1,cdate(tmp))
v04001=year(tmpDate)
v04002=month(tmpDate)
v04003=day(tmpDate)
end if

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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