我正试图获取到2024年之前我所有生日的详细日历信息(即周、星期几等)。我注意到Pandas
是date_range
函数/方法,但我尝试使用time
/datetime
来实现它,因为我无法让“freq=”工作。这就是我到目前为止所拥有的,我想我可以从myBirthdays
列表中得到我所需要的,但是我想知道是否有更简单的方法?好像有很多额外的工作
蒂亚
#import pandas as pd
from datetime import date
import time
def BdayList(birthdate, enddate):
print(birthdate, type(birthdate), endDate, type(endDate))
#print(birthdate.weekday(), endDate.isocalendar())
myMonth = date.strftime(birthdate, "%m")
myDay = date.strftime(birthdate, "%d")
myBirthDays = []
daysDelta = (enddate - birthdate)
daysDeltaInt = daysDelta.days / 365
for year in range(int(date.strftime(birthdate, "%Y")), int(date.strftime(enddate, "%Y"))): #13148
year = str(year)
myBirthday = time.strptime(year+" "+myMonth+" "+myDay, "%Y %m %d")
print(myBirthday)
myBirthDays.append(myBirthday)
#dateRange = pd.date_range(start, periods = NumPeriods, freq="A")
return myBirthDays#DaysDelta, type(DaysDelta)
myBday = date(1988, 12, 22)
endDate = date(2024, 12, 22)
BdayList(myBday, endDate)
time.struct_time(tm_year=1988, tm_mon=12, tm_mday=22, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=357, tm_isdst=-1)
因为可以只替换原始出生日期中的年份,所以不需要在日期和字符串之间切换(注意,我还对代码进行了PEP8处理,并使用了稍微不同的变量名+添加了type hints)
输出应为:
要格式化输出,请检查datetime文档。希望这有帮助
相关问题 更多 >
编程相关推荐