計算日期通過類的方法

2021-10-08 20:56:19 字數 2398 閱讀 7531

設計乙個日期的類,這個類包含年、月、日三個屬性,通過輸入設定當前的年、月、日。

同時,這個類還有一些靜態方法,比如,獲取今天的日期,

明天的日期,下週(七天後)的日期,上週(七天前)的日期。

另外,日期要按照「2023年10月23日」這種格式列印輸出。

def

tianshu

(nian, yue, ri, change)

: yue_ri =[0

,31,28

,31,30

,31,30

,31,31

,30,31

,30,31

]

sumday =

0 sumday =

sum(yue_ri[

:(yue)])

+ ri

sumday += change

if nian %4==

0and yue >2:

if nian %

100!=0:

sumday = sumday +

1if nian %

100==

0and nian %

400==0:

sumday = sumday +

1for i,item in

enumerate

(yue_ri):if

sum(yue_ri[

:i])

< sumday and

sum(yue_ri[

:i+1])

> sumday :

if nian %4==

0and yue >2:

if nian %

100!=0:

sumday = sumday -

1if nian %

100==

0and nian %

400==0:

sumday = sumday -

1

yue = i

ri = sumday -

sum(yue_ri[

:i])

return nian, yue, ri

class

riqi()

:def

__init__

(self, nian, yue, ri, renyi)

: self.nian = nian

self.yue = yue

self.ri = ri

self.renyi = renyi

deftoday

(self)

:print

(f"年月日"

)def

nextday

(self)

: nian, yue, ri = tianshu(self.nian, self.yue, self.ri,1)

print

(f"年月日"

)def

lastday

(self)

: nian, yue, ri = tianshu(self.nian, self.yue, self.ri,-1

)print

(f"年月日"

)

@staticmethod

deflastsevendays

(nian, yue, ri)

: nian, yue, ri = tianshu(nian, yue, ri,-7

)print

(f"年月日"

)

@staticmethod

defnextsevendays

(nian, yue, ri)

: nian, yue, ri = tianshu(nian, yue, ri,7)

print

(f"年月日"

)def

zidingyi

(self, nian, yue, ri, renyi)

: nian, yue, ri = tianshu(nian, yue, ri, renyi)

print

(f"年月日"

)d1 = riqi(

2020,8

,4,-

10)

d1.today(

)d1.nextday(

)d1.lastday(

)d1.lastsevendays(

2020,8

,4)d1.nextsevendays(

2020,8

,4)d1.zidingyi(

2020,8

,4,-

10)

日期類函式(計算日期)

includeusing namespace std int runnian int year 判斷該年是否是閏年 int riqi int month,int year 因為每個月的的天數不一樣,所以用乙個函式進行判斷 else day 30 else return day class date ...

日期類 日期計算器

想要完成日期計算器其實只要考慮完成兩個工作就可以了 實現第乙個工作時,如果是減去乙個天數,例如 給定2017 7 10 與減去乙個天數不同的加乙個天數 即多少天以後 需要向當前月份的下乙個月借天數減去目標天數來滿足年月日合法。加減乙個目標天數的實現思路個方法是一樣的。個中細節請參考 中的注釋。實現第...

日期類 日期計算器

date.h pragma once include using namespace std class date operator inline bool operator const date d const else if year d.year else if month d.month r...