C 有關日期些許題(2)

2021-10-22 14:39:24 字數 1595 閱讀 1228

題目描述:

給出年分m和一年中的第n天,算出第n天是幾月幾號。

輸入描述:

輸入包括兩個整數y(1<=y<=3000),n(1<=n<=366)。

輸出描述:

可能有多組測試資料,對於每組資料,

按 yyyy-mm-dd的格式將輸入中對應的日期列印出來。

示例

輸入

2000

32000

312000

402000

602000

612001

60

輸出

2000-01

-032000-01

-312000-02

-092000-02

-292000-03

-012001-03

-01

解題思路:

依舊用的是類進行問題解決。如果需要檢視具體日期類的實現,可見筆者另一部落格,鏈結為 日期類的實現 。

首先根據輸入的年份判斷是否是閏年,然後再根據該年每月的天數對輸入的天數進行匹配計算,依次算出是哪月的哪天(呼叫對 『-=』 的過載函式)。

示例程式:

#include

using

namespace std;

class

date

}int

getdays

(int year)

;int

getday

(int year,

int month)

; date&

operator-=

(int day)

else

}return

*this;}

void

display()

private

:int _year;

int _month;

int _day;

int m_d;

//中間變數};

static

int days[13]

=;int date::

getdays

(int year)if(

(year %4==

0)&&(year %

100!=0)

||(year %

400==0)

)return num;

}int date::

getday

(int year,

int month)

;int day = days[month];if

(month ==2&&

(((year %4==

0)&&(year %

100!=0)

)||(year %

400==0)

))return day;

}void

test()

}}intmain()

執行結果:

C語言 有關遞迴 非遞迴的題

include include pragma warning disable 4996 intmul int n,int k 函式實現 intmain 遞迴 include include pragma warning disable 4996 abcd 1 my strlen bcd bcd 1 ...

DB2中有關日期和時間的函式

db2中有關日期和時間的函式,及應用 dayname 返回乙個大小寫混合的字串,對於引數的日部分,用星期表示這一天的名 稱 例如,friday dayofweek 返回引數中的星期幾,用範圍在 1 7 的整數值表示,其中 1 代表星期日。dayofweek iso 返回引數中的星期幾,用範圍在 1 ...

DB2中有關日期和時間的函式,及應用

關鍵字 db2中有關日期和時間的函式,及應用 出處 dayname 返回乙個大小寫混合的字串,對於引數的日部分,用星期表示這一天的名稱 例如,friday dayofweek 返回引數中的星期幾,用範圍在 1 7 的整數值表示,其中 1 代表星期日。dayofweek iso 返回引數中的星期幾,用...