1.判断闰平年
1.1代码实现思路
闰年:当年份可以把4整除,并且不能把100整除,或者能把400整除的年份是闰年。
平年:除了闰年都是平年。
1.2代码实现:
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)//闰年
{
}
else//平年
{
}
2.闰平年的区别
闰年:二月份有29天。
平年:二月份有28天。
除了二月份,其他月份天数一样,如下:
一月:31天,二月:区分闰平年,三月:31天,四月:30天,五月:31天,六月:30天
七月:31天,八月:31天,9月:30天,十月:31天,十一月:30天,十二月:31天。
2.1代码实现思路
闰年和平年除了二月以外,其他每个月的天数都一样,可以设置一个数组a用来保存每个月的天数。
数组下标从‘0’开始,因此可以将数组下标设置为13,使数组下标和月份一一对应,a[0]保存输入日期的几号。
2.2代码实现:
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入日期,用-隔开,如1999年5月1日,则输入1999-5-1:\n");
scanf("%d-%d-%d",&y,&m,&d);
a[0]=d;
3.判断该日期是该年的第几天
3.1整体代码实现思路
设置3个int型变量(y,m,d),用于保存输入的年、月、日;在另外设置1个int型变量(sum),用于计算该日期是该年的第几天。
无论闰年还是平年,除了二月份的天数不同,其他都一样,设置数组a保存天数。
判断当前日期是该年的第几天,需要统计当前月份之前几个月的总天数,加上本月几号,因此把输入的第几号存放到a[0],方便计算,可以结合使用for循环快速算出。
3.2整体代码:
#include<stdio.h>
int main(int argc, char const *argv[])
{
int y,m,d;
int sum=0;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入日期,用-隔开,如1999年5月1日,则输入1999-5-1:\n");
scanf("%d-%d-%d",&y,&m,&d);
a[0]=d;
if (y%4==0&&y%100!=0||y%400==0)//闰年
{
a[2]=29;
}
else//平年
{
//a[2]=28;
}
for (int i = 0; i < m; i++)//统计当前月份之前几个月的总天数,加上本月几号,a[0]=d
{
sum+=a[i];
}
printf("%d年%d月%d日是%d年的第%d天\n",y,m,d,y,sum);
return 0;
}
3.3代码运行结果
。