2016-01-18 40 views
0

我有以下問題: 我需要得到一個財年的週年,但事情是我可以有一個動態的財年。 例如,而不是考慮我的財年十二月,31月底,我的財年年底將在8月,15如何計算基於動態結束年的週年?

所以我要考慮我的一年是: 8月16日,(CurrentYear -1 )直到8月15日,CurrentYear。

這樣,我需要創建一個傳遞某個日期的方法,比如說8月18日(CurrentYear-1),並且此方法應該返回一年中的一週。 在這種情況下,這將是1

我知道,與Java,我可以得到一週年的東西,如:

Calendar cal = Calendar.getInstance(); 
cal.setTime(selectedDate.toDate()); 
int weekNumber = cal.get(Calendar.WEEK_OF_YEAR); 

我想知道是否有一些API,這是否基於動態的「年底」的相同數學,或者有關如何做到這一點的一些想法。

+2

計算天不管你的財年的一天一個是數量(在這種情況下,8月16日),然後用7把它圓了到下一個整數,那就是你的星期。 –

回答

0

推薦:

通過定義財政年度

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; 

我在這裏使用僞代碼來查找「numberOfWeeks」,請檢查calculate number of weeks in a given year。這種調整的原因是,一旦日期過渡(例如從52到1),你必須糾正,但你需要知道年份是52或53周。

所以,不優雅,但日曆的東西很少是:-)