我遇到了一个问题,我找不到解决方案。或者至少是一个“好”的。 我想找到每月给予该月的最后一天,在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 *”是什么意思?最后一天的*日期*还是周日(如“星期一”或“星期五”)? –