2009-12-01 76 views
2

健身房墙上的时钟还显示当天的名称和月份的一天。今天早上它显示星期二--23。这个钟是什么时候买的?

当天明显轮换通过7的周期 - 并显示“星期二”正确。尽管如此,月份的日期可能会循环31次,并且错误地显示“23” - 今天是12月1日(即不是11月31日)。所以这个错误一直在缓慢增加。

假设没有人曾经重置过时钟,那么当这个时钟被全新买入时,最优雅,快速,最优化的方式是建议一些可能的日期。

(奖金积分用于显示当时钟将再次显示正确的日期/数字组合)。

+3

是它的编程相关的? – mouviciel 2009-12-01 09:41:38

+0

听起来更像是一个逻辑/智商/数学问题:P – 2009-12-01 09:43:31

+1

这是功课吗? – Bobby 2009-12-01 09:44:08

回答

1

01-OCT-17是当时钟将再次显示正确的日期/数字组合。

+0

我本来可以通过一个程序来做到这一点,但决定使用一个电子表格,左侧是1-31列,增加日期列,然后测试以查看日期是否匹配。 – 2009-12-01 09:46:33

+0

倒退2008年9月 – 2009-12-01 09:50:53

+0

事实上时钟经过30是正确的1 2008年7月2008年9月在这之前它是正确的1 2003年12月至29 2004年2月 – 2009-12-01 09:52:26

0

现在= 12月1日2009年

的过去一个月= 8天(假定31天月)月减23的第一天。

搬回计数非31天一个月...

月,月,月,月,月(X3),月= 8天偏移

所以它是2008年11月之前买的?

我没有为它编码一行,所以如果答案没有问题,请原谅我。

1

星期几(即星期二,...等)将始终正确,因此与您的问题无关。

假设非闰年,你可以建立包含在这一个月的天数12行(每月1次),减去31

  • 表扬0
  • 月-3
  • 三月0
  • 四月-1
  • 日0
  • 君-1
  • 七月0
  • 八月0
  • 月-1
  • 十月0
  • 月-1
  • 十二月0

您可以构建所显示的日期的表,在每月的1日,由在上个月的一天中添加此列表中的相关号码。如果数字为负数或等于零,则将数字加上31。

即从09年12月1日(时钟显示的日期23)开始,您可以进入1月1日的第一天。 您可以看一下这张表,并找到12月旁边的数字,它是0. Add 0到23,你知道在1月1日的1时钟将显示23。

从09年1月1日,你知道,这将在10年2月1日被显示的日期为23

从10年2月1日,你可以计算的价值,为10年3月1日,它是23 +(-3)= 20

...等

所以,现在,在每个月的开始,你在这个表中获取的值为1,你知道,在这个月的日期将是正确的。


如果你不得不包含闰年,你需要第二个表的闰年值或2月例外。


如果您想使用此计算为以前的日期,从。减去表中的数字,当你获得了数量超过31,只是31。减去拿到天数。


使用这些表并考虑闰年。 时钟正确的最后过去日期是08年9月30日(它在08年7月1日到2008年9月30日之间是正确的)

它将正确的下一个日期是即:17年10月1日,它将在17年3月30日仍然是正确的。

+1

感谢确认我的答案时钟最后一次正确的30个正确的。 – 2009-12-01 12:27:50

+0

是的,你是在这两方面是正确的,改装成您提供的答案:) – BlueTrin 2009-12-01 14:58:15

0

在Excel中,您可以测试任何A2日期,看看时钟是否是正确的在该日期,用公式=MOD(A2+19,31)+1=DAY(A2)

+0

是啊,Excel是确实做日期代数的最准确的工具! #UTTER #FAIL http://www.grokdoc.net/index.php/EOOXML_Objections_Clearinghouse#The_Gregorian_Calendar – jsbueno 2009-12-01 11:15:40

相关问题