加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何使用基于星期几的日期时间创建日期?

发布时间:2020-12-20 13:12:56 所属栏目:Python 来源:网络整理
导读:我想使用datetime编写一段代码,这样如果datetime.now()是星期六或星期五下午4点之后,请在星期五下午4点创建一个datetime对象. 我完成了以下内容: from datetime import datetimedatenow = datetime.now()if datenow.isoweekday() == 6 or (datenow.isoweekd
我想使用datetime编写一段代码,这样如果datetime.now()是星期六或星期五下午4点之后,请在星期五下午4点创建一个datetime对象.

我完成了以下内容:

from datetime import datetime

datenow = datetime.now()
if datenow.isoweekday() == 6 or (datenow.isoweekday() in [5] and datenow.hour >=16): 
           ## change datenow to the passing friday at 4pm.

有人可以帮帮我吗?

解决方法

完整解决方案

def set_prev_iso_week_day(val,iso_week_day):
    """
    Set ISO week day.
    New date will be less or equal than input date.
    :param val: datetime or date
    :type val: datetime.datetime | datetime.date
    :param iso_week_day: ISO week day to set
    :type iso_week_day: int
    :return: datetime.datetime | datetime.date
    """
    if val.isoweekday() == iso_week_day:
        return val
    diff = iso_week_day - val.isoweekday()
    diff = -diff if diff < 0 else 7 - diff
    val -= timedelta(days=diff)
    return val

datenow = set_prev_iso_week_day(datenow,5).replace(hour=16,minute=0,second=0,microsecond=0)

或使用我的lib t77_date并使用:

from t77_date.constants import ISO_FRIDAY
from t77_date.datetime import set_prev_iso_week_day


datenow = set_prev_iso_week_day(datenow,ISO_FRIDAY).replace(hour=16,microsecond=0)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读