2023年3月24日 星期五

Python3 100範例-4 <<這天第幾天


 輸入某年某月某日,判斷這一天是這一年的第幾天?



def isLeapYear(y):

    return (y%400==0 or (y%4==0 and y%100!=0))


DofM=[0,31,28,31,30,31,30,31,31,30,31,30]

res=0

year=int(input('Year:'))

month=int(input('Month:'))

day=int(input('day:'))

if isLeapYear(year):

    DofM[2]+=1

for i in range(month):

    res+=DofM[i]

print(res+day)



year = int(input('year:'))

month = int(input('month:'))

day = int(input('day:'))

 

months = (0,31,59,90,120,151,181,212,243,273,304,334)

#             [1]31,[2]28,[3]31,[4]30,[5]31,[6]30,[7]31,8[31],9[30],[10]31,11[30],12[31]

#             0 , 31 , 59 , 90 , 120 , 151 , 181 , 212 , 243, 273, 304 , 334

if 0 < month <= 12:

    sum = months[month - 1]

else:

    print ('data error')

sum += day

leap = 0

if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):

    leap = 1

if (leap == 1) and (month > 2):

    sum += 1

print ('it is the %dth day.' % sum)


>>> %Run -c $EDITOR_CONTENT

Year:2023

Month:3

day:24

83

year:2023

month:3

day:24

it is the 83th day.

>>> 

利用chatGPT解

利用 python 解出 输入某年某月某日,判断这一天是这一年的第几天?


可以使用 Python 的 datetime 模块来解决这个问题。具体来说,可以将输入的年、月、日作为参数传递给 datetime.date() 函数,然后使用 date.toordinal() 函数将日期转换为自公元1年1月1日以来的天数,再用当前日期与该年1月1日的日期差计算出该天是该年的第几天。

以下是代码实现:

以下是代码实现:

python
import datetime
year = int(input("请输入年份:")) month = int(input("请输入月份:")) day = int(input("请输入日期:")) date1 = datetime.date(year, 1, 1) # 该年1月1日的日期 date2 = datetime.date(year, month, day) # 输入的日期 days = (date2 - date1).days + 1 # 日期差加1,即为该天是该年的第几天 print("%d年%d月%d日是第%d天" % (year, month, day, days))

以输入日期为2023年3月25日为例,输出结果为:

yaml
请输入年份:2023
请输入月份:3 请输入日期:25 2023年3月25日是第84天

因此,2023年3月25日是第84天。

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...