我们有一个4-5-4日历,其中会计年度从2月的星期日开始 . 对于2016财年,第一天实际上是在1月 - 也就是1月31日的星期日 .
我需要编写一个以日期作为输入并返回财政周的函数,例如201552,这将是2015财年的第52个财周 .
我认为第一步是确定输入日期财政年度的开始日期 . 我知道它总是一个星期天,但我怎么知道它是2月日历的第一个星期日,还是1月日历的最后一个星期日?
(幸运的是,对于这个功能的目的,我可以忽略偶尔的第53周;在这种情况下我可以回到第52周 . 这是因为(我被告知)有53个财政周的年份是不可预测的(无论如何在这家公司)并且确定以人为的突发奇想 . )
有什么建议?
更新:
从2005财年到2017财年,我收到了一份关于我们公司的FY日历的文件 . 我看到的模式是:
-
如果2月1日是星期一,星期二或星期三,那么FY的第一天是1月的最后一个星期日 .
-
如果2月1日是星期四,星期五,星期六或星期日,那么FY的第一天是2月的第一个星期日 .
我认为这给了我所需要的东西 .
1 回答
我认为第一步是找到输入日期的2月1日的星期几 .
接下来,找到FY的第一天,这是基于2月1日的一周 . 如果是星期一,星期二或星期三,那么FY的第一天是1月的最后一个星期日 . 否则,FY的第一天是1月的第一个星期日 .
接下来,确定输入日期是在该FY还是之前 .
然后,如果输入日期是前一个FY,那么获取该FY的第一天 .
接下来,计算从FY的第一天到输入日期的天数 . 除以7,向上舍入到下一个整数 . 那是FY周 .
那时,我将知道输入日期的FY年和FY周,并且可以返回它 .
更新:
这就是我所拥有的;它适用于我的测试: