社区
PowerBuilder
帖子详情
如何计算两个datetime的时间间隔(精确到秒)?
rsy123
2007-12-20 10:43:01
我用的是PowerBuilder 10.0,要求计算出两个datetime的时间间隔(精确到秒),如
2007-12-20 17:00:00和2007-12-21 20:05:30的计算结果为27:05:30(小时:分钟:秒),其中小时可以超出两位,最多不会超过150小时.
我曾经用secondafter做过,但是超出一天就不行了。请问如何才能够算出两者的时间间隔,谢谢。
...全文
994
2
打赏
收藏
如何计算两个datetime的时间间隔(精确到秒)?
我用的是PowerBuilder 10.0,要求计算出两个datetime的时间间隔(精确到秒),如 2007-12-20 17:00:00和2007-12-21 20:05:30的计算结果为27:05:30(小时:分钟:秒),其中小时可以超出两位,最多不会超过150小时. 我曾经用secondafter做过,但是超出一天就不行了。请问如何才能够算出两者的时间间隔,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dawugui
2007-12-21
打赏
举报
回复
作品:统计两个时间段之间的秒数!如果结束段小于开始段则为负数!
制作:独孤求败!
版本:PB802!
日期:2004-05-07!
注意:版权所有,欢迎盗版!
本文将开始和结束结束时间放在窗口的OPEN事件中,网友可以从其他途径获得。
sle_data1.Text = "2004-05-07"
sle_time1.Text = "20:15:00"
sle_data2.Text = "2004-05-07"
sle_time2.Text = "20:15:30"
统计按钮的代码如下:
long ll_total_seconds = 0 , ll_day_adjust = 0
date ld_sdate, ld_edate //日期
time lt_stime, lt_etime //时间
ld_sdate = date(sle_data1.Text)
ld_edate = date(sle_data2.Text)
lt_stime = time(sle_time1.Text)
lt_etime = time(sle_time2.Text)
//86400为一天的总秒数,如果要算小时,将所得结果除以60
IF ld_edate = ld_sdate THEN //如果日期相同
ll_total_seconds = secondsafter(lt_stime , lt_etime)
ELSE
IF ld_edate > ld_sdate THEN
ll_day_adjust = DaysAfter(ld_sdate , ld_edate) - 1
ll_total_seconds = SecondsAfter(Time('00:00:00') , lt_etime) + 86400*ll_day_adjust + SecondsAfter(lt_stime , Time('23:59:59')) + 1 //1为修正值
ELSE //将两个时间段交换
ll_day_adjust = DaysAfter(ld_edate , ld_sdate) - 1
ll_total_seconds = SecondsAfter(Time('00:00:00') , lt_stime) + 86400*ll_day_adjust + SecondsAfter(lt_etime , Time('23:59:59')) + 1 //1为修正值
ll_total_seconds = - ll_total_seconds //将计算所得的值置反
END IF
END IF
sle_1.Text = STRING(ll_total_seconds)
霖湘凝
2007-12-21
打赏
举报
回复
说明,adtm_start和adtm_end分别是你要比较的日期
long ll_total_seconds, ll_day_adjust
date ld_sdate, ld_edate
time lt_stime, lt_etime
ld_sdate = date(adtm_start)
ld_edate = date(adtm_end)
lt_stime = time(adtm_start)
lt_etime = time(adtm_end)
//86400为一天的总秒数
If ld_sdate = ld_edate then
ll_total_seconds = secondsafter( lt_stime,lt_etime)
Elseif ld_sdate < ld_edate Then
ll_total_seconds = SecondsAfter(lt_stime,Time('23:59:59'))
ll_day_adjust = DaysAfter(ld_sdate,ld_edate) -1
If ll_day_adjust > 0 Then ll_total_seconds = ll_total_seconds + 86400 * ll_day_adjust
ll_total_seconds = ll_total_seconds + SecondsAfter(Time('00:00:00'),lt_etime) +1
Else //end date < start date
ll_total_seconds = SecondsAfter(lt_stime,Time('00:00:00'))
ll_day_adjust = DaysAfter(ld_sdate,ld_edate) +1
If ll_day_adjust < 0 Then ll_total_seconds = ll_total_seconds + 86400 * ll_day_adjust
ll_total_seconds = ll_total_seconds + SecondsAfter(Time('23:59:59'),lt_etime) -1
end If
ll_total_seconds就是最终的秒数的差,然后除以3600就是小时了。
python内置模块
datetime
.timedelta
计算
时间间隔
Python的
datetime
模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类
datetime
.date、
datetime
.time、
datetime
.
datetime
、
datetime
.timedelta,
datetime
.timezone等。
python-
datetime
计算
时间间隔
from
datetime
import date from
datetime
import
datetime
print(date.today()) #显示今天的年月日 print(
datetime
.now()) #显示年月日时分
秒
输出: 2019-01-21 2019-01-21 19:15:45.623116 1.如何
计算
三天前的时间和三天后的时间? from
datetime
i...
C#
计算
两个
日期的
时间间隔
代码 参数为
两个
datetime
类型,返回的是处理后的字符串 如果不知道字符串怎样转化为
DateTime
类型,可以参考我整理的另一篇博文: https://yangyongli.blog.csdn.net/article/details/117649851 ///
计算
两个
日期的
时间间隔
/// /// 第一个日期和时间 /// 第二个日期和时间 /// private string DateDiff(
DateTime
DateTime
1,
DateTime
DateTime
2) { string da
计算
两个
日期的
时间间隔
,
精确
到
秒
/// <summary> ///
计算
两个
日期的
时间间隔
,
精确
到
秒
/// </summary> /// <param name="
DateTime
1">第一个日期和时间</param> /// <param name="DateTi...
Python
计算
两个
日期的
时间间隔
(
datetime
模块)
datetime
是 Python 标准库中的一个模块,用于处理日期和时间。它提供了丰富的类和方法,可以方便地创建、操作和格式化日期与时间数据。通过本文的学习,您应该已经掌握了如何使用 Python 的
datetime
模块来
计算
两个
日期之间的
时间间隔
。无论是简单的日期
计算
还是复杂的带时间的日期
计算
,都可以轻松实现。如果您在实际项目中遇到类似的需求,请不要犹豫,直接使用
datetime
模块即可!```
PowerBuilder
1,111
社区成员
66,454
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章