以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 精确计算两个日期之间的天数间隔 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1601) |
||||||||||||||||||||
-- 作者:shihao821004 -- 发布时间:2009/1/10 22:59:00 -- 精确计算两个日期之间的天数间隔 在易表中有一个DAYSBTW函数 其作用: 精确计算两个日期之间的天数间隔,例如: DAYSBTW($"1999-2-1",$"1999-3-1") = 28 DAYSBTW([出生日期],Today()) 返回自出生日期至今,合计有多少天。 狐表里如何能实现这样的功能。我没找到类似的,请指教 我要计算某一日期到“今天”之间的天数间隔 |
||||||||||||||||||||
-- 作者:lxl -- 发布时间:2009/1/10 23:05:00 -- Dim d1 As Date = #1/1/1983# Dim d2 As Date = Date.Today Dim ts As TimeSpan = d2 - d1 Return ts.Days |
||||||||||||||||||||
-- 作者:shihao821004 -- 发布时间:2009/1/10 23:38:00 -- DateDiff(interval,date1,date2) 我找到了这样一个命令,应该更简单些。 个人感觉狐表这方面做得不如易表。找个命令很困难。为什么不能像易表那样,做一个公式生成器呢。对于不懂编程的人帮助很大 |
||||||||||||||||||||
-- 作者:shihao821004 -- 发布时间:2009/1/11 0:49:00 -- 以下是引用lxl在2009-1-10 23:05:00的发言:
Dim d1 As Date = #1/1/1983# Dim d2 As Date = Date.Today Dim ts As TimeSpan = d2 - d1 Return ts.Days 您能再说的详细点吗?我不会用 |
||||||||||||||||||||
-- 作者:smileboy -- 发布时间:2009/1/11 8:26:00 -- 时段概述 时段的类型为TimeSpan,所谓时段,就是一段时间范围。 定义一个新的TimeSpan的语法为: New TimeSpan(days, hours, minutes, seconds, milliseconds) 例如: Dim tp1 As New TimeSpan(20,13,45) \'20小时13分45秒Dim tp2 As New TimeSpan(1,20,13,45) \'1天20小时13分45秒 Dim tp3 As New TimeSpan(1,20,13,45,200) \'1天20小时13分45秒200毫秒 Dim tp4 As New TimeSpan(0,0,0,200) \'200秒 Dim tp5 As New TimeSpan(0,0,0,0,200) \'200毫秒 时段数据有以下常用属性:
两个日期时间数据相减,得到的就是一个时段型数据。 例如: Dim d1 as Date = #3/17/2002 12:30:29#Dim d2 as Date = #1/1/2008 10:11:49# Dim t As TimeSpan = d2 - d1 Output.Show(t.Days & "天" & t.Hours & "小时" & t.Minutes & "分" & t.Seconds & "秒") 在命令窗口执行上述代码,得到的输出结果是:2115天21小时41分20秒 利用时段数据的下述属性,可以将时段转换为一个数值:
例如: Dim d1 as Date = #3/17/2002 12:30# 在命令窗口执行上述代码,得到的输出结果是:2116.25天 利用时段数据的Add和Subtract方法,可以进行时段的加减,并得到一个新的时段值。 例如: Dim t0 As New TimeSpan(10,0,5)Dim t1 As New TimeSpan(40,6,30,15) Dim t2 As New TimeSpan(40,20,45) Dim t3 As TimeSpan t3 = t1.Subtract(t2) \'t3等于t1减去t2 t3 = t3.Add(t0) \'t3加上t0 Output.Show(t3.Days & "天" & t3.Hours & "小时" & t3.Minutes & "分" & t3.Seconds & "秒") 在命令窗口执行上述代码,得到的输出结果是:39天0小时9分35秒 有时为了测试代码的效率,我们需要记录代码执行所耗费的秒数,可以参考下面的代码: Dim t1 As Date = Date.NowDim Sum As Long For i As Integer = 1 To 10000000 Sum = Sum + i Next Output.Show("计算结束, 耗时: " & (Date.Now - t1).TotalSeconds & "秒") |
||||||||||||||||||||
-- 作者:shihao821004 -- 发布时间:2009/1/11 12:57:00 -- 我的表中有两列出生日期列,距今月数列。其中距今月数列是表达式列,是计算我填入的出生日期列中的日期到今天之前有多少个月 |
||||||||||||||||||||
-- 作者:shihao821004 -- 发布时间:2009/1/13 11:07:00 -- [求助]请教专家关于局域网内其他客户使用程序的问题! Dim d1 As Date = ([生产日期]) ‘引用生产日期列的数据 Dim d2 As Date = Date.Today Dim ts As TimeSpan = d2 - d1 Return ts.Days 我想计算有效期,请老师帮忙看看,什么地方不对 |
||||||||||||||||||||
-- 作者:czy -- 发布时间:2009/1/13 12:31:00 -- Dim d1 As Date = CurrentTable.Current("出生日期") Dim d2 As Date = Date.Today Dim ts As TimeSpan = d2 - d1 Return ts.Days |
||||||||||||||||||||
-- 作者:shihao821004 -- 发布时间:2009/1/13 16:57:00 -- 以下是引用czy在2009-1-13 12:31:00的发言:
Dim d1 As Date = CurrentTable.Current("出生日期") Dim d2 As Date = Date.Today Dim ts As TimeSpan = d2 - d1 Return ts.Days
我在使用的时候还是报错,这是截图,请老师指点。谢谢 |
||||||||||||||||||||
-- 作者:狐狸爸爸 -- 发布时间:2009/1/13 17:05:00 -- 两个错误提示度说的很清楚: 错误一:客户表没有出生日期列 错误二:应该是: Tables("客户表").Current("出生日期") 而不是: Table("客户表").Current("出生日期") |