Run ID:132578

提交时间:2025-10-10 08:47:49

def is_leap_year(year): """判断是否为闰年""" return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) def get_days_in_month(year, month): """获取某年某月的天数""" if month == 2: return 29 if is_leap_year(year) else 28 days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] return days_in_month[month - 1] def calculate_days_difference(target_year, target_month, target_day): """计算从基准日期到目标日期的天数差""" # 基准日期:2021年3月18日 base_year, base_month, base_day = 2021, 3, 18 # 如果目标日期在基准日期之前,交换计算 swap = False if (target_year < base_year or (target_year == base_year and target_month < base_month) or (target_year == base_year and target_month == base_month and target_day < base_day)): swap = True base_year, target_year = target_year, base_year base_month, target_month = target_month, base_month base_day, target_day = target_day, base_day days = 0 # 计算基准日期到年底的天数 for month in range(base_month, 13): days_in_month = get_days_in_month(base_year, month) if month == base_month: days += days_in_month - base_day else: days += days_in_month # 计算中间年份的天数 for year in range(base_year + 1, target_year): days += 366 if is_leap_year(year) else 365 # 计算目标年份到目标日期的天数 for month in range(1, target_month): days += get_days_in_month(target_year, month) days += target_day # 如果交换过,取负值 return -days if swap else days def calculate_weekday(year, month, day): """计算星期几(1=周一, 2=周二, ..., 7=周日)""" # 2021年3月18日是星期四(对应数字4) base_days = calculate_days_difference(2021, 3, 18) target_days = calculate_days_difference(year, month, day) days_diff = target_days - base_days # 计算星期几(基准日是星期四=4) weekday = (4 + days_diff % 7 + 7) % 7 # 调整:0=周日, 1=周一, ..., 6=周六 if weekday == 0: weekday = 7 # 按照题目要求,周日应该是7 return weekday def main(): # 读取输入 year, month, day = map(int, input().split()) # 计算天数差 days_difference = calculate_days_difference(year, month, day) # 计算星期几 weekday = calculate_weekday(year, month, day) # 输出结果 print(days_difference) print(f"*{weekday}") if __name__ == "__main__": main()