Python从程序中用户的输入中获取每月的天数

2024-10-01 15:28:28 发布

您现在位置:Python中文网/ 问答频道 /正文

这就是我要做的:

用户将按顺序输入年、月数(1-12)和日数。程序将确定日期是在将来还是在过去。(如果输入的日期是今天的日期,则假定该日期是过去的日期)。未来的约会是尚未发生的日期。如果今天是7月31日,那么同年的8月1日就不是过去了,只是因为第(1)天在今天(31日)之前。对于输入,如果用户输入的月份无效,则显示适当的错误消息(如“无效月份”)并结束程序。如果用户输入的日期无效,则显示适当的错误消息(如“无效日期”)并结束程序。假设2月份有28天。换句话说,如果月份是二月,输入的日期是29,则显示错误消息并结束程序。记得: 三十天是九月、四月、六月和十一月,其余的都是31天,除了二月,它有28天。。。。在

定义一个名为 将来() 它接受给定的年数、月数和日数作为3个独立的参数。函数应该返回一个布尔值(True或False),以指示日期(年、月和日)参数是否在将来。如果返回的日期是真的,则返回的日期为假过去了。是吗不应在屏幕上绘制任何图像或文本。它也不应该要求用户输入。它只需确定给定日期是否在将来。找到一个代表未来的图像,一个代表过去的图像。例如未来的“杰森”和过去的旧车。如果日期在将来,请在画布中间显示您的未来图像。如果日期在过去,请在画布中间显示您的过去图像。在画布顶部,显示“将来”或“过去”,以与图像匹配的为准。要查找当前日期,可以将此导入和函数添加到代码中: 导入日期时间 def getTodaysDate(): 返回日期时间。日期时间。今天(); 如果在代码中的某个地方调用此函数: 今天=getTodaysDate(); 然后可以使用year、month和day成员变量来获取当前的year、month和day。例如: 打印(今天.月); 将输出本月

到目前为止,这是我的代码,我在想办法让我的无效日错误消息在不同月份显示时遇到问题。例如,假设我只有28天,4月、6月、9月、11月有30天,其余31天。我试了几个小时测试不同的东西,但没能让它发挥作用:

import sys
import tkinter
import datetime
import calendar

def getTodaysDate():
    return datetime.datetime.today();
today = getTodaysDate();
print(today)

#def inTheFuture():



year= input ("Enter Year: ");
month= int(input ("Enter Month: "));
day= int(input ("Enter Day: "));


if (month > 12):
    print("invalid Month")
    raise SystemExit
if (month == 1,3,5,7,8,10,12):
    (day > 31)
    print("Invalid Day")
    raise SystemExit
else:
    (month == 2)
    (day > 28)
    print("Invalid Day")
    raise SystemExit
else:
    (month == 4,6,9,11)
    (day > 30)
    print("Invalid Day")
    raise SystemExit

Tags: 函数用户图像import程序消息错误raise
1条回答
网友
1楼 · 发布于 2024-10-01 15:28:28

因为看起来你的家庭作业允许使用datetime模块,所以请它验证一下:

>>> from datetime import date
>>> date(date.today().year,2,29)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: day is out of range for month
>>> date(date.today().year,13,31)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: month must be in 1..12

否则,这里有一个语法提示:

^{pr2}$

不起作用,应写下:

if month in [1,3,5,7,8,10,12] and day > 31:

这应该能让你开始。在

相关问题 更多 >

    热门问题