遇到一道面试题目,完全没有头绪

<P>&nbsp; 不准用系统函数,请写出一个函数,传入一个日期,判断是星期几?大家有什么思路?</P> <P>&nbsp;</P>

大话西游666
浏览 564回答 2
2回答

慕容3067478

公元前1年12月31日正好是星期日 ----------------------- 这个推算准确么? ----------- 我查了一些资料 1:在世界各国通用一星期七天的制度。这个制度最早由君士坦丁大帝(Constantine the Great)制定。他在公元321年3月7日正式宣布7天为一周,这个制度一直沿用至今。 问题是,我不知道321年3月7号是星期几。 2:1582年,罗马教皇格里高利十三世采用意大利医生利奥制订的格里历。1582年10月4日后的一天是10月15日,而不是10月5日,但星期序号仍然连续计算,10月4日是星期四,第二天10月15日是星期五。 由此可见:在此之前的星期和日期对应就会出错,相差3天。似乎我们可以从这一天开始设为基点。从这天以后没听说还有“消失的日子”。 3:现在网上提供的万年历基本上都是1900年-2049年的。1900年1月1号是星期一。 以我看,这个是最好的基准点。 ---------- 所以,如果我们要找一个“日期”--“星期几”的对照,最好采用1900年了,这个才比较准确。 所以, 1:我们可以才用这个作为基准:1900-1-1==monday。 2:然后再根据闰年规则,这样可以计算出日期的差值DiffDay。 3:然后DiffDay mod 7. 这样就可以计算出今天是星期几了。 另外,根据上边的史料: 谁要计算公元1582之前的星期几,我看程序得改写一点了。 要是推断321年以前的,似乎就没有实际意义了。

海绵宝宝撒

去研究公历历法吧,还能有什么思路:) 至少你得知道一年有几天,满足什么条件的年份是闰年,闰年有几天,今天的年月日(以及星期几).
打开App,查看更多内容
随时随地看视频慕课网APP