天天看點

【C語言】判斷一個年份是否為閏年判斷閏年算法

判斷閏年算法

冷知識^_^:

閏年是曆法中的名詞,分為普通閏年和世紀閏年。 閏年(Leap Year)是為了彌補因人為曆法規定造成的年度天數與地球實際公轉周期的時間差而設立的。補上時間差的年份為閏年。閏年共有366天(1月~12月分别為31天、29天、31天、30天、31天、30天、31天、31天、30天、31天、30天、31天)。

凡陽曆中有閏日(2月29日)的年份,閏餘(歲餘置閏。陰曆每年與回歸年相比所差的時日)。

注意閏年(公曆中的名詞)和閏月(農曆中的名詞)并沒有直接的關聯,公曆隻分閏年和平年,平年有365天,閏年有366天(2月中多一天);平年中也可能有閏月(如2017年是平年,農曆有閏月,閏六月)。

判斷方法:

普通閏年:公曆年份是4的倍數,且不是100的倍數的,為閏年(如2004年、2020年等就是閏年)。

世紀閏年:公曆年份是整百數的,必須是400的倍數才是閏年(如1900年不是閏年,2000年是閏年)。

思路:

四年一閏,百年不閏,四百年再閏

判斷輸入的

year%4==0

後再判斷

year%100!=0

成立為閏年,如果判斷出

year%400==0

則year也是閏年。

代碼

#include<stdio.h>
int main()
{
    int year;
    printf ("Please input year:");
    scanf ("%d",&year);
    if (year%4==0)
    {
        if(year%100!=0)
        {
            printf ("%d year is Leap Year\n",year);
        }
        else if (year%400==0)
        {
            printf ("%d year is Leap Year\n",year);
        }
    }
    else
        printf ("%d year is not Leap Year\n",year);
        return 0;
}
           

繼續閱讀