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

标签 python date datetime

我想使用 datetime 编写一段代码,这样如果 datetime.now() 是星期六或星期五下午 4 点之后,就在星期五过去了。

我已完成以下内容:

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)

或者使用我的库 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,minute=0,second=0,microsecond=0)

关于python - 如何使用基于星期几的日期时间创建日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38157292/

相关文章:

Python pickle/unpickle 到/从文件中提取列表

python - 找不到 _iconv 的 pyspatialite 符号

ruby-on-rails - rails 3 : How to get today's date in specific timezone?

javascript - 创建日期对象并与今天的日期进行比较

python manage.py runserver、shell、dbshel​​l 在 git-bash 上卡住

python - 将 json.dump 移植到 StringIO 代码到 python 3

php - 根据当前日期和表日期删除mysql表行

ruby-on-rails - Rails 如何计算3个日期之间的整数时差

javascript - D3 DateTime 解析器考虑时区

c# - 日期时间转移到下一个预定义日期