我遇到了一個問題,我找不到解決方案。或者至少是一個「好」的。 我想找到每月給予該月的最後一天,在C.給定月份的最後一天
例如一年:
last_day(10, 2017) > 31
last_day(02, 2017) > 28
last_day(02, 2016) > 29
last_day(01, 2017) > 31
last_day(12, 2010) > 31
LAST_DAY(X,Y)> X是一個月,Y年
這裏是我的想法:獲取Y年的X + 1月份的一天。從此日期刪除1天。
我想知道是否有比這更好的解決方案,因爲這將爲「簡單」的事情做出「大量」操作。
謝謝。
#include <stdio.h>
#include <time.h>
#include <string.h>
int main(void) {
struct tm tm;
char out[256];
memset(&tm, 0, sizeof(struct tm));
tm.tm_mon = 1;
tm.tm_mday = 0;
strftime(out, 256, "%d-%m-%Y", &tm);
printf("%s", out);
return 0;
}
我已經用結構TM,和天= 0,爲了得到前一天的測試,但沒有奏效
顯示輸入,顯示所需的輸出。 – tilz0R
除了二月份以外的每個月,通過表格查找都非常簡單。對於2月份,您需要計算給定年份是否有28天或29天。 – MrSmith42
「last * day *」是什麼意思?最後一天的*日期*還是週日(如「星期一」或「星期五」)? –