以文本方式查看主题

-  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)
New TimeSpan(days,
hours, minutes, seconds)
New TimeSpan(
hours, minutes, seconds)

例如:

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毫秒

时段数据有以下常用属性:

属性 说明
Days 获得时段数据的天数
Hours 获得时段数据的小时数
Minutes 获得时段数据的分钟数
Seconds 获得时段数据的秒数

两个日期时间数据相减,得到的就是一个时段型数据。

例如:

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秒

利用时段数据的下述属性,可以将时段转换为一个数值:

属性 说明
TotalDays 将时段值转换为以天为单位的数值
TotalHours 将时段值转换为以小时为单位的数值
TotalMinutes 将时段值转换为以分为单位的数值
TotalSeconds 将时段值转换为以秒为单位的数值

例如:

Dim d1 as Date = #3/17/2002 12:30#
Dim
d2 as Date = #1/1/2008 18:30#
Dim t As TimeSpan = d2 - d1

Output.Show(t.TotalDays &
"")

在命令窗口执行上述代码,得到的输出结果是: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.Now
Dim
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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:desktop.rar

我在使用的时候还是报错,这是截图,请老师指点。谢谢


--  作者:狐狸爸爸
--  发布时间:2009/1/13 17:05:00
--  
 两个错误提示度说的很清楚:
错误一:客户表没有出生日期列
错误二:应该是:

Tables("客户表").Current("出生日期")

而不是:

Table("客户表").Current("出生日期")