python --生成区间内所有日期/计算两个日期相差多少天/近一周日期

用datetime

def date_range(beginDate, endDate) -> list:
    '''区间内所有日期'''
    dates = []
    dt = datetime.datetime.strptime(beginDate, "%Y-%m-%d")
    date = beginDate[:]
    while date <= endDate:
        dates.append(date)
        dt = dt + datetime.timedelta(1)
        date = dt.strftime("%Y-%m-%d")
    return dates

获取最近7天日期

def date_range() -> list:
    '''最近7天日期'''
    before_date = datetime.timedelta(days=7)
    today = datetime.datetime.today()
    beginDate, endDate = str((today - before_date).date()), str(today.date())
    dates = []
    dt = datetime.datetime.strptime(beginDate, "%Y-%m-%d")
    date = beginDate[:]
    while date <= endDate:
        dates.append(date)
        dt = dt + datetime.timedelta(1)
        date = dt.strftime("%Y-%m-%d")
    return dates




print(date_range())

获取指定月份的第一天和最后一天

from datetime import datetime, timedelta

def get_first_and_last_day(year, month):
    '''获取本月第一天和最后一天'''
    first_day = datetime(year, month, 1)
    if month == 12:
        last_day = datetime(year + 1, 1, 1) - timedelta(days=1)
    else:
        last_day = datetime(year, month + 1, 1) - timedelta(days=1)
    return first_day.date(), last_day.date()

year = 2025
month = 2
first_day, last_day = get_first_and_last_day(year, month)
print("First day of the month:", first_day)  # 输出本月的第一天
print("Last day of the month:", last_day)    # 输出本月的最后一天

用pandas

import pandas as pd

print(pd.date_range('2022-02-25', '2022-03-02', freq='D'))  # 取日期间隔
# DatetimeIndex(['2022-02-25', '2022-02-26', '2022-02-27', '2022-02-28',
#                '2022-03-01', '2022-03-02'],
#               dtype='datetime64[ns]', freq='D')

print(pd.date_range(start='2022-02-25', freq='D', periods=3))  # 只指定开始日期
# DatetimeIndex(['2022-02-25', '2022-02-26', '2022-02-27'], dtype='datetime64[ns]', freq='D')

print(pd.date_range(end='2022-02-25', freq='D', periods=3))  # 只指定结束日期
# DatetimeIndex(['2022-02-23', '2022-02-24', '2022-02-25'], dtype='datetime64[ns]', freq='D'

计算两个日期相差多久

from datetime import datetime
	
	def days_between_dates(date1_str, date2_str):
	    date_format = "%Y-%m-%d"
	    date1 = datetime.strptime(date1_str, date_format).date()
	    date2 = datetime.strptime(date2_str, date_format).date()
	    delta = date2 - date1
	    return delta.days
	
	# 示例日期字符串
	date1_str = "2023-01-01"
	date2_str = "2023-01-10"
	
	# 计算相差天数
	days = days_between_dates(date1_str, date2_str) + 1
	print(f"相差天数:{days} 天")
	
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像风一样的男人@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值