Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在动态年终计算周-年?_Java_Algorithm_Api_Logic - Fatal编程技术网

Java 如何在动态年终计算周-年?

Java 如何在动态年终计算周-年?,java,algorithm,api,logic,Java,Algorithm,Api,Logic,我有以下问题: 我需要得到一个财政年度的周数,但问题是我可以有一个动态的财政年度。 例如,与其考虑我的财政年度12月31日结束,不如考虑我的财政年度将在8月15日结束 所以我应该考虑我的一年来自: 8月16日(本年度-1)至本年度8月15日 这样,我需要创建一个传递某个日期的方法,比如8月18日(CurrentYear-1),这个方法应该返回一年中的一周。 在这种情况下,它将是1 我知道,使用Java,我可以通过以下方式获得一周: Calendar cal = Calendar.getInsta

我有以下问题: 我需要得到一个财政年度的周数,但问题是我可以有一个动态的财政年度。 例如,与其考虑我的财政年度12月31日结束,不如考虑我的财政年度将在8月15日结束

所以我应该考虑我的一年来自: 8月16日(本年度-1)至本年度8月15日

这样,我需要创建一个传递某个日期的方法,比如8月18日(CurrentYear-1),这个方法应该返回一年中的一周。 在这种情况下,它将是1

我知道,使用Java,我可以通过以下方式获得一周:

Calendar cal = Calendar.getInstance();
cal.setTime(selectedDate.toDate());
int weekNumber = cal.get(Calendar.WEEK_OF_YEAR);
我想知道是否有一些API在动态的“年终”中进行同样的计算,或者关于如何做到这一点的一些想法。

建议:

首先定义会计年度第一个日期的参考周

Calendar cal = Calendar.getInstance();
cal.setTime(fiscalStartDate.toDate());
int referenceWeek = cal.get(Calendar.WEEK_OF_YEAR);
对于任何给定日期,会计周将为:

cal.setTime(fiscalGivenDate.toDate());
int calendarWeek = cal.get(Calendar.WEEK_OF_YEAR)
int fiscalWeek = (calendarWeek > referenceWeek) ? calendarWeek- referenceWeek : (calendarWeek + <numberOfWeeks>) - referneceWeek;
cal.setTime(fiscalGivenDate.toDate());
int calendarWeek=cal.get(Calendar.WEEK/年)
int fiscalWeek=(日历周>参考周)?日历周-参考周:(日历周+)-参考周;
我在这里使用了伪代码来查找“numberOfWeeks”,请检查。进行此调整的原因是,一旦日期转换为年份(例如,从52到1),您必须进行更正,但您需要知道年份是52周还是53周


因此,这并不优雅,但日历上的东西很少是:-)

计算出你的会计年度第一天的天数(在本例中为8月16日),然后除以7。四舍五入到下一个整数,这就是你无常的一周。