以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何准确计算一个起始日期后加三个月后的日期?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7492)

--  作者:ddlzq
--  发布时间:2010/6/30 21:47:00
--  [求助]如何准确计算一个起始日期后加三个月后的日期?

各位老师,我想计算一个日期值,想在起始日期输入后,自动算出三个月后的日期值。

于是我在表属性afteredit事件后写了代码:

if e.col.name = "起始日期" then
e.row("结束日期") = e.row("起始日期").Adddays(90)
else
e.row("结束日期") = nothing
end if

月有大小,如何能准确判断一个起始日期在公历经过的月实际延后三个月的日期值呢?请各位老师指点。谢谢。


--  作者:狐狸爸爸
--  发布时间:2010/6/30 21:49:00
--  
AddMonths
给日期值加上指定的月数。
语法:
AddMonths(Value)
Value: 要加上的月数,可以是负数也可以是正数。
例如:
Dim d As Date = #2/28/2008#
Dim d1 As Date = d.AddMonths(10) \'加上10个月
Dim d2 As Date = d.AddMonths(-10) \'减去10个月
Output.Show("10个月后的日期:" & d1)
Output.Show("10个月前的日期:" & d2)

--  作者:ddlzq
--  发布时间:2010/6/30 21:51:00
--  
晕~ 我搜帮助addmonth搜不到,搜addmonths就...图片点击可在新窗口打开查看
--  作者:blackzhu
--  发布时间:2010/7/1 7:23:00
--  
我经常这样
--  作者:ddlzq
--  发布时间:2010/7/1 12:14:00
--  

if e.col.name = "开始时间"
if e.row.IsNull("开始时间") = false Then
e.row("项目到期日") = e.row("开始时间").Addmonths(3)
Dim d1 as Date = date.now
Dim d2 as Date = e.row("项目到期日")
Dim t As TimeSpan = d2 - d1
e.row("距今日剩余天数") =t.TotalDays
else
e.row("项目到期日") = nothing
e.row("距今日剩余天数") = nothing
end if
end if

 

请问各位老师:我做了两个日期相距天数,有三列,一列是开始时间,一列是到期日,还有一列是动态变化天数

请问如何能使用距今日剩余天数在计划管理中动态变化?或做在Afteropenproject,自动变化到期日与今天距离的天数呢?谢谢


--  作者:ddlzq
--  发布时间:2010/7/1 12:36:00
--  
另外再想问个问题,我设置了一个计划管理,设定了每五分钟保存和同步表,这个挺好,只不过如果正好赶在我在写数据,被执行计划了,刚写的还没手动保存的被清掉了,请问计划管理能不能加个代码判断在操作空闲时才计时来执行计划?
--  作者:czy
--  发布时间:2010/7/1 12:49:00
--  
在计划管理中可以用HasChanges判断一下是否有新数据录入,如果有就先执行保存命令。
--  作者:ddlzq
--  发布时间:2010/7/1 14:05:00
--  
谢谢CZY老师