将秒数添加到python日期时间,不包括周末
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将秒数添加到python日期时间,不包括周末,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2062字,纯文字阅读大概需要3分钟。
内容图文
![将秒数添加到python日期时间,不包括周末](/upload/InfoBanner/zyjiaocheng/657/17b3a227989b4bb191c901f5c98a4d29.jpg)
我正在尝试将除熊猫使用周末之外的秒数添加到python datetime中.下面的代码有效,但是我想知道是否有更简单的方法来实现此目的.
import datetime
from pandas import *
from pandas.tseries.offsets import *
def add_seconds(start_date, offset_in_seconds):
# get input date in datetime
d = datetime.strptime(start_date, '%Y-%m-%d %H:%M:%S')
# get days, hours, mins, secs
no_of_days, remainder = divmod(offset_in_seconds, 86400)
hours, minutes = divmod(remainder, 3600)
minutes, seconds = divmod(minutes, 60)
# increment the input date to the appropriate business day
end_date_pre = d + no_of_days*BDay()
# dial back to previous evening if hour is under 24
if 16 + hours < 24:
end_date = end_date_pre
new_end_date = datetime(end_date.year, end_date.month, end_date.day, 16, 0, 0)
return start_date, end_date, new_end_date.strftime('%Y-%m-%d %H:%M:%S')
# dial forward to the next business day if hour exceeds 24
elif 16 + hours >= 24:
end_date = end_date_pre + 1*BDay()
new_end_date = datetime(end_date.year, end_date.month, end_date.day,9, 0, 0)
return start_date, end_date, new_end_date.strftime('%Y-%m-%d %H:%M:%S')
else:
return start_date, end_date, end_date.strftime('%Y-%m-%d %H:%M:%S')
解决方法:
dateutil软件包应该会有所帮助,例如
from dateutil.rrule import *
def add_weekday_seconds(start, x):
rr = rrule(SECONDLY, byweekday=(MO, TU, WE, TH, FR), dtstart=start, interval=x)
return rr.after(start)
(1)使用rrule类创建一个“重复日期规则”,该规则包含从开始(这是一个日期时间)开始的星期一到星期五之间的所有秒,每x秒跳过一次;然后(2)使用after方法执行此规则,该方法返回与开始时间之后的规则匹配的第一个日期时间-这应该是您的答案!
在星期五晚上午夜之前10秒的开始时间加上5、10和15秒的测试,分别导致星期五午夜之前5秒,星期一午夜12点和星期一午夜5秒后:
In [131]: friday_night = datetime.datetime(2012, 8, 10, 23, 59, 50)
In [132]: add_weekday_seconds(friday_night, 5)
Out[132]: datetime.datetime(2012, 8, 10, 23, 59, 55)
In [133]: add_weekday_seconds(friday_night, 10)
Out[133]: datetime.datetime(2012, 8, 13, 0, 0)
In [134]: add_weekday_seconds(friday_night, 15)
Out[134]: datetime.datetime(2012, 8, 13, 0, 0, 5)
内容总结
以上是互联网集市为您收集整理的将秒数添加到python日期时间,不包括周末全部内容,希望文章能够帮你解决将秒数添加到python日期时间,不包括周末所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。