元芳,你知道公元一年一月一日是星期几吗

           公元一年一月一日为星期一。这是标准定义,至于为什么这么定义,你可以去考证一下。

    我们现在采用的立法是罗马教皇格里高利十三世修订“儒略历”所成的“格里历”,该历法规定自1582年10月4日次日为1582年10月15日,于是历史上就少了10天。

    儒略历是古罗马的恺撒大帝和在公元前46年制定的,365年作为一年,单月为大月31天,双月为小月30天,2月29天。4年一闰,称为“儒略历”或“恺撒历”。当时,罗马帝国判死刑的罪犯都在二月份处决,古罗马人因此把二月叫做“凶月”,从二月里减去一天,使二月不和其它月份相同是理所当然的。但令人遗憾的是,当时那些颁发历书的祭司们,却不了解改历的实质。结果,可笑的是,当时罗马执掌颁布历书的祭司竟把原来历法上规定的“每隔三年置闰”误解为“每三年置一闰”。从公元前45年起,到公元前9年为止,这之间本应设置10个闰年,他们却设置了13个闰年。公元前9年,人们终于发现这一差错,这时恺撒的外甥奥古斯都执掌政权,他纠正了这个错误,才停止了“三年一闰”。奥古斯都下令改正过来,改到次年(公元前8年)才置闰年。当改正这种闰年的错误时已经多闰了3年,为了去掉着多闰的3年,奥古斯都又下令停闰3年,即以公元前5年、公元前1年、公元前4年仍为平年,以后恢复了每4年一闰的规定了。奥古斯都为了宣扬这一功劳,仿效儒略·恺撒的做法,下令把自己出生的儒略历中的8月改称为奥古斯都月(这一名称在西方沿用到今天)。8月后的大,小月份都翻转过来了,9月为30天,10月为31天,11月为30天,12月为31天,这种置月方式一直沿用至今。如此一来,一年多出了一天,于是也从二月份29天里再减去一天,二月份只剩下28天了

    1582年罗马教皇格里高利十三世对"儒略历"又进行修改,规定被4整除的年为闰年,但逢百之年只有能被400除尽才能是闰年。这就是使用至今的“格里历”。这样做是为了使历年与回归年相接近。回归年的周期是365.2425天。儒略历一年的平均长度为365.25日,比回归年(365.2425天)长11分14秒,自公元325年(该年采用儒略历作为宗教日历)积累到十六世纪末,春分日由3月21日提早到3月11日。于是罗马教皇格里高利十三世(Gregorius XⅢ)于1582年10月4日还下令将次日(即原10月5日)定为10月15日,把春分日又恢复为3月21日。这样,1582年的10月5日-14日这十天就成了“不存在”的日子,变为历史的空白。

           以上只是普及一下知识,下面才是整篇,现在的大多数软件日期都是提供1900年为其实年,之前的年份多数都没有提供,这就造成了,当我们想查询一下1900年之前的年份的时候就必须要自己去计算了,有两个公式可以帮助我们计算某年某月某日,在这一年中星期几,一个是基姆拉尔森公式,一个是蔡勒公式。

       我们可以知道1582年10月4日是星期四,1582年10月15日应该是星期五。

       基姆拉尔森公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

       在公式中d表示日期中的日数,m表示月份数,y表示年数。

       注意:在公式中有个与其他公式不同的地方:

       把一月和二月看成是上一年的十三月和十四月,例:如果是2012-1-9则换算成:2011-13-9来代入公式计算。

       w:星期(计算所得的数值对应的星期: 0-星期一; 1-星期二; 2-星期三; 3-星期四; 4-星期五; 5-星期六;6-星期日;)

       我验证过,这个公式对1582年10月15日及其以后的日期时准确的,对1582年10月15日之前的日期不适用。

       蔡勒公式W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1,对于W >0则W = W%7,否则W = ( W % 7 + 7 ) % 7;

       w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六  

       c:世纪减1(年份前两位数)  

       y:年(后两位数)  

       m:月(把一月和二月看成是上一年的十三月和十四月,例:如果是2012-1-9则换算成:2011-13-9来代入公式计算)  

       d:日  

       [ ]代表取整,即只要整数部分。

       我在验证的过程中,该蔡勒公式同样只适用于1582年10月15日及其之后的日期,对之前的日期也是测不准啊。


        练习题:在西方,星期五和数字 13 都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五”。 要求:输入年份,输出是:判断该年是否包含黑色星期五,如包含,给出具体日期

    


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值