我是python的新手,我有这种格式的字符串
Ex. 'Mar-00'
我怎么计算这个月的第一天和最后一天。
输出:
first day : 01-Mar-00
last day : 31-Mar-00
例如:“ 2月17日”
first day : 01-Feb-17
last day : 28-Feb-17
答案 0 :(得分:0)
您可以使用calendar.monthrange(year, month)[1]
来获取给定月份和年份的天数。
第一个始终是01,最后一个是calendar.monthrange(year, month)[1]
尝试一下,让我知道它是否有效:
import calendar
month_abbr_to_num = {v: k for k,v in enumerate(calendar.month_abbr)}
month_abbr, year_2_digit = input("please enter month, e.g. Mar-00: ").split('-')
month = month_abbr_to_num[month_abbr]
year = int('20'+year_2_digit)
days_in_month = calendar.monthrange(year,month)[1]
print("first day : {:02d}-{}-{}".format(1, month_abbr, year_2_digit))
print("last day : {:02d}-{}-{}".format(days_in_month, month_abbr, year_2_digit))
编辑:
在您对原始问题发表评论之后,此处以函数形式返回两个datetime
对象:
import calendar
import datetime
month_abbr_to_num = {v: k for k,v in enumerate(calendar.month_abbr)}
def get_first_and_last_day(user_input):
month_abbr, year_2_digit = user_input.split('-')
month = month_abbr_to_num[month_abbr]
year = int('20' + year_2_digit)
days_in_month = calendar.monthrange(year, month)[1]
first_day = datetime.datetime(year, month, 1)
last_day = datetime.datetime(year, month, days_in_month)
return first_day, last_day
first, last = get_first_and_last_day(input("please enter month, e.g. Mar-00: "))
print("first day : ",first)
print("last day : ",last)