用c语言编写万年历

编写万年历程序,首先需要了解万年历的特点。

以下是万年历的特征(复制和粘贴):

1.平年有365天(52周+1天),闰年有366天(52周+2天)。平年2月28日,闰年2月29日。

由于65438+10月1设为周六,所以3月1为周三。——注意这“三”

为了简化算法,该算法以“周”为计算单位。并选择3月1作为基月。

2.每400年跳一次,或者每4年跳一次而不是100年。(理由:地球绕太阳一周的时间是365天5小时46秒。为了使一年中的天数为整数,一年中的天数设为365天,其余时间累加,即23小时15分4秒,将近一天。将这一天加到一年的二月,得到29天,这一天称为闰年,其他年份称为平年。但是,四年加一天要多花44分56秒,这个数字是400年后的三天。所以400年只能有97个闰年,所以任何能被400或100整除但能被4整除的年份都是闰年。)

所以百年%4=0闰年或(年%4=0和年

3.每4年(3平年+1闰年)就是208周+5天——注意这个“5天”。

每百年就是100*(208周+5天)-1天=5217周+5天-注意这个“5天”(整百年暂设为平年)。

每400年有4*(5217周+5天)+1天(整400年闰年)=20871周+0天——注意这个“0天和“1天”(四个整百年只有一个闰年)。

也就是400年一个周期!(最初的万年历是400年前的一家)

至于日期和星期的对齐,我给你一些思路供参考:每行7天,你可以设置每天占用10个字符(同时上面的星期也要占用10个字符)。假设这个月的第一天是星期四,你需要输出10 × 3个字符来占据空间,然后输出1。当输出星期日时,