当前位置:  开发笔记 > 人工智能 > 正文

计算13日星期五的未来事件

如何解决《计算13日星期五的未来事件》经验,为你挑选了2个好方法。

我希望能够从一年开始,并计算13日星期五的事件.蛮力解决方案简单明了.我有一些稍好的东西,但我毫不怀疑其他人可以为此提出一个优雅的算法.

也许有点棘手,我有兴趣给这个项目一个月,然后让它找到那个月的第三年星期五.

随意使用伪代码,但我希望人们会用你喜欢的语言投票更多地使用代码示例.



1> Devin Jeanpi..:

由于您的强力算法显然是直观的逐日迭代选项,您可能还没有考虑过世界末日算法.这将允许您简单地检查第13个星期五是否是星期五.据我所知,这是解决问题的最有效方法.



2> nlucaroni..:

任何以星期日开始的月份都会在十三号星期五举行.只有14种组合可能知道今年的第一天是哪一天(有或没有闰年,太阳坐).你应该只计算一次并完成它.你只需要检查14*12个可能的月份开始,理由是这样.

结果表元素(自2009年,2010年):

[Thursday,false] => Feb, March, Nov
[Friday,false] => Aug

填写表格你有一个月的通用月份(31),2月(28)..然后用一周的每一天的种子迭代,注意从星期日开始的月份,以及闰年和没有.很直接,一旦完成,你可以与我们分享:)


这是最快的表格方法,afaict.工作日有14种类型 - 非闰年7种,闰年7种,12个月.一旦你知道1月1日的哪一天落在何处,以及它是否是闰年,二维或三维阵列都能提供非常快速的答案 - 两者都很容易计算.
推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有