以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎么求得上月的同一天的日期?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3217)

--  作者:听雪落的声音
--  发布时间:2009/6/19 17:58:00
--  [求助]怎么求得上月的同一天的日期?
日期为2009年6月1日,用什么代码能够获得登录日期上个月的日期?
--  作者:mr725
--  发布时间:2009/6/19 18:00:00
--  
是2009年5月1日 ?
--  作者:听雪落的声音
--  发布时间:2009/6/19 18:02:00
--  
以下是引用mr725在2009-6-19 18:00:00的发言:
是2009年5月1日 ?

对,就是通过代码求得这个日期。
2009年6月1日是变量。


--  作者:mr725
--  发布时间:2009/6/19 18:05:00
--  
用 replace
--  作者:听雪落的声音
--  发布时间:2009/6/19 18:08:00
--  
关键是还要判断现在时间,要是现在时间是一月就比较麻烦了。
--  作者:mr725
--  发布时间:2009/6/19 18:45:00
--  
试一试吧~   觉得有点怪怪的,呵呵~

dim dt as date = Date.Today
dim lsdt as date  \'重复了,删除调后,下面的lsdt都用dt即可了
dim m as string = dt
if dt.month = 12
  lsdt = m.replace("" & m.split("-")(1) & "","1")
end if
if dt.month = 1  
  lsdt = m.replace("" & m.split("-")(1) & "-","12-")
end if
if dt.month >=2 and dt.month <=11
  lsdt = m.replace("" & m.split("-")(1) & "","" & m.split("-")(1)-1 & "")
end if
[此贴子已经被作者于2009-6-19 19:19:02编辑过]

--  作者:mr725
--  发布时间:2009/6/19 21:00:00
--  
这个更规范:

dim y as string = Date.Today.year
dim m as string = Date.Today.month
if m = 1
    Dim Days As Integer = Date.DaysInMonth(y,13-1)
    dim dt as date = Date.Today.adddays(-days)
else
    Dim Days As Integer = Date.DaysInMonth(y,m-1)
    dim dt as date = Date.Today.adddays(-days)
end if
[此贴子已经被作者于2009-6-19 21:07:55编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/6/20 8:26:00
--  
Dim d1 As Date = #1/21/1999#
Dim d2 As Date = d1.AddMonths(-1)
Output.show(d2)

--  作者:kylin
--  发布时间:2009/6/20 8:31:00
--  
以下是引用mr725在2009-6-19 21:00:00的发言:
这个更规范:

dim y as string = Date.Today.year
dim m as string = Date.Today.month
if m = 1
    Dim Days As Integer = Date.DaysInMonth(y,13-1)
    dim dt as date = Date.Today.adddays(-days)
else
    Dim Days As Integer = Date.DaysInMonth(y,m-1)
    dim dt as date = Date.Today.adddays(-days)
end if
[此贴子已经被作者于2009-6-19 21:07:55编辑过]

这个不错
可惜if 后少写一个then,呵呵