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

2021-10-02 21:17:29 字數 1864 閱讀 1322

閏年的計算方法:

1、非整百年:能被4整除的為閏年。

2、整百年:能被400整除的是閏年。

3、對於數值很大的年份:這年如果能被3200整除,並且能被172800整除則是閏年。如172023年是閏年

82023年不是閏年(因為雖然能被3200整除,但不能被172800整除)。

閏年分為普通閏年和世紀閏年。

1、普通閏年:能被4整除但不能被100整除的年份為普通閏年。(如2023年就是閏年,2023年不是閏年);

2、世紀閏年:能被400整除的為世紀閏年。(如2023年是世紀閏年,2023年不是世紀閏年)。

i =

input

(f"請輸入年月日(格式為:2019-5-26):"

)l = i.split(

"-")

year =

int(l[0]

)month =

int(l[1]

)day =

int(l[2]

)months =(0

,31,59

,90,120

,151

,181

,212

,243

,273

,304

,334

)

day_sum =0if

(year%4==

0)or(year %

100!=0)

and(year%

400==0)

:if0if month >2:

day_sum = months[month-1]

+ day +

1else

: day_sum = months[month-1]

+ day

else

:print

("資料錯誤"

)else:if

0if month >2:

day_sum = months[month-1]

+ day

else

: day_sum = months[month-1]

+ day

else

:print

("資料錯誤"

)print

(f"這一天是這一年的第天"

)方法二:

year =

int(

input

('year:'))

month =

int(

input

('month:'))

day =

int(

input

('day:'))

day_sum =

0months =(0

,31,59

,90,120

,151

,181

,212

,243

,273

,304

,334)if

0< month <=12:

day_sum = months[month -1]

else

:print

('資料錯誤。'

)day_sum += day

leap =0if

(year %

400==0)

or((year %4==

0)and(year %

100!=0)

):leap =1if

(leap ==1)

and(month >2)

: day_sum +=

1print

(f'共計有 天。'

)

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

案例 輸入某年某月某日,判斷這一天是這一年的第幾天?方法一 system.out.println 輸入某年某月某日 scanner sc new scanner system.in system.out.println 年 int year sc.nextint system.out.println...

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

解題思路 因為平年和閏年的2月時間不一樣,所以要先判斷是平年還是閏年。接著根據switch語句,把所輸入的月份分開算,前面的月份所經歷的時間,加上本月的第一幾天日期。因為從2月後開始,每個月的計算都要判斷一下平年還是閏年,所以把這個寫成了乙個函式。這樣寫 還是有點兒多,也可以一開始就判斷是平年還是閏...

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

分析方式 以具體的某個月份為例,例如2019年3月5號,先把前兩個月的天數加起來,再加5,特殊情況的是遇到閏年,大於2月的在天數後加1 list 1 0,31,59,90,120,151,181,212,243,273,304,334 float day 0 year int input year ...