如何使用基于星期几的日期时间创建日期?
发布时间: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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |