关于如何通过日期计算天数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于如何通过日期计算天数相关的知识,希望对你有一定的参考价值。

正用delphi7.0作了一个系统,最后作结算时不知怎样通过住店日期和离店日期计算所住天数,清高帮忙解决,最好有代码.

1 在窗体中增加label1 和label2 ,label3caption分别为“住店日期”和“离店日期”,“天数为”
2 在窗体中增加DateTimePicker1和DateTimePicker2分别将其name改为date1 和date2 用于选择两个时间。
3 在窗体中增加两个bitbtn 分别将caption设置为“确定”和“关闭”
4 在label3旁边加一个edit1 用于显示天数。
5 在“关闭”按钮中加
close;
6 在“确定”按钮中加入代码
var
z,l,i:Tdatetime;
h:string;
begin
try
z:=strtodate(datetostr(date1.Date));
l:=strtodate(datetostr(date2.Date));
i:=l-z;
edit1.Text:=floattostr(i);
except
showmessage('计算失败');
end;
end;
参考技术A “Delphi中表示时间通常使用TDateTime类型,这个类型实际上是Double类型。整数部分表示自12/30/1899以来的天数,而小数部分是将不足一天的部分除以24小时,如上午6点是0.25。要进行时间运算只需要直接进行加减就可以了。 ”

因此,days := date1-date2; days的整数部份就是天数了。
另外,对于住店的日期计算,还要考虑结算时间。大多数住店的结算时间为中午12:00;因此,凌晨2:00住店,到第二天凌晨1:00离开,要算2天。

参考资料:[Delphi中有没有时间相减的函数] http://www.china-askpro.com/msg35/qa22.shtml

参考技术B 编写的思想是:把住店日期和离店日期都换成一年里的第几天,例如住店日期是1月28日,那换算成是第28天,那离店日期2月5号,换算成36天,然后再相减再加1,应该可以了.
但这个方法有个问题是,要是他是跨年的话...那就要成了负数了,而且还有闰年的问题.....
晕呀...那个也是大问题!!
参考技术C 日期相减的值就默认得是天数,这个时间程序自动就已经处理了。 参考技术D 计算时间差的函数好像有的。

mysql: 如何计算指定日期到当前日期之间的天数

其中的指定日期取自某数据表中的一个字段

1、首先,我们打开软件,需要创建一个控制台应用程序,在Main方法中用来获取并输出系统当前的日期,输入:DateTime now = DateTime.Now。

2、在visual studio中按F5就可以调试模式运行程序,这个时候,就可以看到当前的日期加时间都输出来了。

3、获取到了今天的日期,这个时候就可以使用DayOfWeek属性了。输入DayOfWeek week = now.DayOfWeek。

4、重新调试运行,就可以看到当前系统日期,以及星期几都输出来了。只不过星期输出来的是英文。

5、接着,在Program类的同级,添加一个新的静态类和静态方法,此处使用静态,仅仅只是为了方便调用。在这个方法中,接收开始、结束日期,然后计算出两个日期之间的工作日天数。

6、在Main方法中,直接通过静态类的静态方法调用,并将结果输出到控制台窗口。

7、重新调试模式运行,就可以看到指定传入的日期之间的工作日天数都计算出来了。

参考技术A datediff
DATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');

-> 1

mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');

-> -31
select Datediff(列名,列名) as datenum from 表名本回答被提问者采纳
参考技术B datediff
DATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。
参考技术C select datediff(day,'2008.12.31',getdate()) 参考技术D mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');

-> 1

mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');

-> -31
select Datediff(列名,列名) as datenum from 表名

以上是关于关于如何通过日期计算天数的主要内容,如果未能解决你的问题,请参考以下文章

JS通过一个值与日期比较计算天数

如何用c语言来计算日期间隔天数?

如何计算通过Android中的日期选择器选择的两个日期之间的天数

如何写计算两个日期之间的天数函数

vfp中要计算两个日期间相差天数如何编写程序?

在 Java 8 中计算两个日期之间的天数