我试图让python返回一周中的某一天被输入的月份日期,例如: 2018年4月的第1个星期日返回1 或2018年4月的第3个星期四返回19
是否有python库或数学算法这样做?我看过泽勒的一致性,但看起来却恰恰相反。
答案 0 :(得分:0)
从您的输入字符串中分隔所有值,然后从该年的那个月获取当天的所有日期。
这是一个很大的尝试:
import calendar
import re
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
string = "1st Sunday of April 2018"
string.split().pop(2)
string_list = string.split()
year = int(string_list[4])
month = list(calendar.month_name).index(string_list[3])
day_num = list(calendar.day_name).index(string_list[1])
which = int(re.search(r'\d+', string_list[0]).group())
monthcal = c.monthdatescalendar(year,month)
date = [day for week in monthcal for day in week if \
day.weekday() == day_num and \
day.month == month][which-1]
print(date.day)