一些相关的日期问题,其实都有一个较为好用的模版(但不适用于所有日期题),可在该摸板上进行改动即可,以下为模版代码:
#include <iostream> #include <stdio.h> using namespace std; //日期问题模版(计算当前日期的下一天) void NextDay(int year,int month,int day) { int dayOfMonth[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(year%4==0 && year%100!=0||year%400==0) {//判断是否是闰年,若是,则进入if语句.注意:逻辑与&的优先级高于逻辑或|| dayOfMonth[2]=29; } ++day; if (day > dayOfMonth[month]) { day=1; month++; } if (month > 12) { month=1; year++; } printf("year=%d,month=%d,day=%d\n",year,month,day); } int main() { int year=2000; int month=12; int day=31; NextDay(year,month,day); return 0; } 例1:
法一:当计算某一天是本年的第几天时,可以运用上面的模版,从一月一号开始算,循环调用NextDay()函数,并count计数,每调用一次count++,当month和day都等于当前日期时,count值为第几天。
法二: