C语言实现任意日期星期几计算:1900年规则与闰年判断

需积分: 9 1 下载量 79 浏览量 更新于2024-09-19 收藏 3KB TXT 举报
该代码片段是用C语言实现的一个函数,用于计算从1900年到任意指定日期的星期几。题目涉及到的是一个常见的计算机编程问题,即根据公历算法,给定年份、月份和日期,确定这一天属于一周中的哪一天。这种问题在处理日期计算时非常实用,因为星期几的确定需要考虑闰年和平年的规则,以及每个月份的天数变化。 函数`Common_Leap`用于判断一个年份是否为闰年,根据格里高利历(公历)规定,能被4整除但不能被100整除的年份是闰年,或者能被400整除的年份也是闰年。这个函数返回一个整数,1表示该年是闰年,0表示不是。 `BC1900`函数(BCE表示公元前)计算的是从公元前1900年到指定年份、月份和日期之间的总天数,然后根据计算结果,使用模运算(%7)确定星期几,结果范围是0(星期日)到6(星期六)。此函数先处理1900年之前的天数,再加入指定年份的特殊闰年处理。 `AD1900`函数(CE表示公元后)则相反,从指定年份开始向前计算,同样处理闰年的情况,并最终返回星期几。这两个函数都需要将年份、月份和日期的累计天数与1900年后的星期数进行累加并求余,得到的结果即为所求的星期。 整个过程涉及到了日期计算中的基本数学操作,包括加法、取模运算,以及对闰年规则的理解和应用。这对于编程者来说,不仅考验了对日期算法的掌握,还涉及到了数论知识,因为求解星期几的过程实际上是对日期的周期性问题进行周期分解。这种算法在实际生活中广泛应用,如日程安排、节假日计算等。

1、列举常用的java系统包?哪个包不需要用import导入? 2、如何获取字符串长度、数组长度? 3、如何判断两个字符串是否相等? 4、如何获取字符串指定位置的字符? 5、怎样把字符串转小写或大写? 6、如何去除字符串首尾空格? 7、怎样判断一个字符串是否以另外字符串开头或结束? 8、使用String对象的求子串方法substring()要注意什么?“abcde".substring(0,3)的结果是什么? 9、如何判断一个字符串是另一个的子串? 10、将一个字符串按指定定界符分割成字符串数组用什么方法,举例说明。 11、字符串和字符数组如何相互转换? 12、String和StringBuffer的区别,如何互相转化? 13、如何求字符串的逆序字符串? 14、Integer类中2,8,16进制=》10进制,10进制转2,8,16进制的方法。 15、获取给定日期(比如你的生日)星期几的方法,举例说明。 16、字符串和整数(实数)之间互相转换的方法? 17、如何计算一段代码的执行时间? 18、如何实现两个数组内容的拷贝? 19、已知window下任意文件名,返回该文件的扩展名。 20、以"年-月-日 小时:分钟:秒"的格式显示当前时间,年4位,月、日、小时、分钟、秒占2位,小时是24进制的。 21、任给两个日期,求它们相差的天数?(可考虑用日期时间类实现),给出1990-10-1和2000-3-1相差的天数的结果值。

2023-04-21 上传