C语言编程计算闰年
1、能被4整除而不能被100整除.(如2004年就是闰年,1900年不是)
2、能被400整除.(如2000年是闰年)
算法:
public boolean isLeapYear(long year){
return((year&3)==0)&&((year%100)!=0||(year%400)==0);
}
分析:
表达式(a&3)==(a%4)的值是1
因为无论a的值为多少a&3的结果只保留a的最后2位
如a的值为17,它变为二进制为10001,而3为00011,它们相与的结果只有a的1和2位数字保留下来也就是01,因为与1相与就保留原数据,与0相与就变0如a&1=a a&0=0
而a%4也是保留a的最后2位,因为只有最后2位的值为3,小于4,其它都>4。
扩展资料:
import java.util.Calendar;
public class RunYear{
public static void main(String[]args){
RunYear.fuchtion2();
}
1、日历设置到指定年份的3月1日
2、add向前偏移1天
3、获取天数,29闰年
public static void fuchtion2(){
Calendar c=Calendar.getInstance();
//将日历,设置到指定年的3月1日。
c.set(2088,2,1);
//日历add方法,向前偏移1天
c.add(Calendar.DAY_OF_MONTH,-1);
//get方法获取天数
int daynumber=c.get(Calendar.DAY_OF_MONTH);
System.out.println(daynumber);
}
}
一、闰年判断方法:
1、非整百年:能被4整除的为闰年。(如2004年就是闰年,2100年不是闰年)
2、整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
二、算法设计:
1、输入年份;
2、根据年份,判断是否为闰年;
3、输出结果。
三、参考代码:
#include <stdio.h>
int main()
{
int year;
scanf("%d",&year);//输入年份
if(year%400==0 || (year%4==0 && year%100 !=0))//判断是否为闰年
printf("是闰年\n");
else printf("不是闰年\n");//输出结果。
return 0;
}