題目描述:
給出年分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 返回引數中的星期幾,用...