主要实现功能为提供一个时间节点,获取时间节点星期内的所有日期。

执行结果为:

开始日期: 2020-12-28
结束日期: 2021-01-03
2020-12-28
2020-12-29
2020-12-30
2020-12-31
2021-01-01
2021-01-02
2021-01-03

以下为Python脚本内容:

# 获取指定日期内一周启始天数 By:admin@ym68.cc
from datetime import date
# year=input("请输入年月日(以-为分隔符):")
year = 2020
month = 7
day = 30
if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
    if month == 8 or month == 1:
        # 上个月日期
        Old_Day_Max = 31
    elif month == 3:
        if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) and (month == 2):
            Old_Day_Max = 29
        elif month == 2:
            Old_Day_Max = 28
    else:
        Old_Day_Max = 30
    # 当月日期
    Old_Day_New_Max = 31
else:
    Old_Day_Max = 31
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) and (month == 2):
        Old_Day_New_Max = 29
    elif month == 2:
        Old_Day_New_Max = 28
    else:
        Old_Day_New_Max = 30
a = date(year, month, day)
old_year_month_day = a.weekday()
if day - old_year_month_day <= 0:
    if month == 1:
        Old_Month = 12
        Old_Year = year - 1
    else:
        Old_Month = month - 1
else:
    Old_Month = month
if old_year_month_day - day < 0:
    New_Month = month + 1
else:
    New_Month = month
# 判断月前及月后可能的日期
if day < 8:
    if day - old_year_month_day <= 0:
        Start_Day = Old_Day_Max - (old_year_month_day - day)
        if month == 1:
            Start_Date_Time = date(Old_Year, 12, Start_Day)

        else:
            Start_Date_Time = date(year, Old_Month, Start_Day)
        Stop_Day = (day - old_year_month_day) + 6
        Stop_Date_Time = date(year, month, Stop_Day)
    elif day - old_year_month_day > 0:
        Start_Day = day - old_year_month_day
        Start_Date_Time = date(year, Old_Month, Start_Day)
        Stop_Day = (day - old_year_month_day) + 6
        Stop_Date_Time = date(year, month, Stop_Day)

elif day > 22:
    Start_Day = day - old_year_month_day
    Start_Date_Time = date(year, Old_Month, Start_Day)
    if ((day - old_year_month_day) + 6) - Old_Day_New_Max > 0:
        month += 1
        Stop_Day = ((day - old_year_month_day) + 6) - Old_Day_New_Max
        Stop_Date_Time = date(year, month, Stop_Day)
    else:
        Stop_Day = (day - old_year_month_day) + 6
        Stop_Date_Time = date(year, month, Stop_Day)
elif day - old_year_month_day > 0:
    Start_Day = day - old_year_month_day
    Start_Date_Time = date(year, Old_Month, Start_Day)
    Stop_Day = (day - old_year_month_day) + 6
    Stop_Date_Time = date(year, month, Stop_Day)
print("开始日期:", Start_Date_Time)
print("结束日期:", Stop_Date_Time)
New_Start_Day = Start_Day
New_Day = 1
test = 0
while test != 1:
    if day > 24:
        if New_Start_Day <= Old_Day_New_Max:
            print(date(year, Old_Month, New_Start_Day))
        else:
            print(date(year, New_Month, New_Day))
            New_Day += 1
    else:
        if New_Start_Day <= Old_Day_Max:
            if month == 1 and day - old_year_month_day <= 0:
                print(date(Old_Year, Old_Month, New_Start_Day))
            elif day - old_year_month_day > 0:
                print(date(year, Old_Month, New_Start_Day))
            elif day - old_year_month_day < 0:
                print(date(year, Old_Month, New_Start_Day))
        else:
            print(date(year, New_Month, New_Day))
            New_Day += 1
    if New_Start_Day == Start_Day + 6:
        test = 1
    else:
        if New_Start_Day >= Start_Day + 1:
            New_Start_Day += 1
        else:
            New_Start_Day = Start_Day + 1
END

本文标题:通过Python脚本获取指定日期一周范围时间

本文作者:宇宙最帅的男人

本文链接:https://www.ym68.cc/python/20211569.html

版权声明:转载或者引用本文内容请注明来源及原作者,本文著作权归作者 (宇宙最帅的男人) 所有。

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

最后修改:2021 年 06 月 15 日
如果觉得我的文章对你有用,请随意赞赏