2016-01-18 6 views
0

У меня есть следующая проблема: Мне нужно получить год недели финансового года, но дело в том, что у меня может быть динамический финансовый год. Например, вместо того, чтобы рассматривать конец моего финансового года Декабрь, 31, конец моего финансового года будет август, 15.Как рассчитать недельный год, основанный на динамическом конце года?

Так что я должен считать мой год составляет от: 16 августа (CURRENTYEAR -1) до 15 августа текущего года.

Таким образом, мне нужно создать метод, передающий некоторую дату, скажем, 18 августа (CurrentYear-1), и этот метод должен вернуть неделю года. В этом случае было бы 1.

Я знаю, что с Java я могу получить недельный год что-то вроде:

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

Я хотел бы знать, если есть API, который делает это та же математика, основанная на динамическом «Конец года», или, может быть, некоторое представление о том, как это сделать.

+2

Подсчитайте количество дней от того, что вашего финансового года день один является (в данном случае, 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 недели.

Таким образом, не шикарно, но календарь материал редко бывает :-)

Смежные вопросы