首页 > 其他 > 详细

计算某年各月的天数

时间:2015-05-27 01:05:10      阅读:280      评论:0      收藏:0      [点我收藏+]

  只是小的进步,毕竟是自己想出来的,保留下来,以鼓励自己继续努力:

#include <stdio.h>

int isLeap(int y);
int dofm(int m, int y);

int main(void)
{
	/* 测试月份的第一位和第四位,异或为1代表大月31天,反之30天 
	int a=0;
	for(a=1; a<=12; a++)
		printf("%x,%x,%x\n", (a & 8)>>3, a & 1, ((a & 8)>>3) ^ (a & 1) );
	*/
	int year, month, days;
	printf("请输入一个公元年(如2015):");
	scanf("%d", &year); 
	printf("%d年各月天数:\n", year);
	for(month=1;month<=12;month++){
		printf("%d月有%d天。\n", month, dofm(month, year));
	} 
	return 0;
}

int isLeap(int y)
{
	return (y%4==0 && y%100!=0 || y%400==0);
}

int dofm(int m, int y)
{
	int d;
	if(m!=2)
		d = ((m&8)>>3)^(m&1)?31:30;
	else 
		d = isLeap(y)?29:28;
	return d;		
}


本文出自 “StudyPark” 博客,请务必保留此出处http://swordautumn.blog.51cto.com/1485402/1655461

计算某年各月的天数

原文:http://swordautumn.blog.51cto.com/1485402/1655461

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!