BAEL-3912 - Java: Get week number from any date?
This commit is contained in:
parent
fd2c628b34
commit
aa6d896b11
|
@ -8,11 +8,11 @@ import java.util.Locale;
|
||||||
|
|
||||||
public class WeekNumberUsingCalendar {
|
public class WeekNumberUsingCalendar {
|
||||||
|
|
||||||
public int getWeekNumberFrom(String day, String dateFormat, Locale locale) throws ParseException {
|
public int getWeekNumberFrom(String dateString, String dateFormat, Locale locale) throws ParseException {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
|
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
|
||||||
|
Date date = sdf.parse(dateString);
|
||||||
|
|
||||||
Calendar calendar = Calendar.getInstance(locale);
|
Calendar calendar = Calendar.getInstance(locale);
|
||||||
Date date = sdf.parse(day);
|
|
||||||
calendar.setTime(date);
|
calendar.setTime(date);
|
||||||
|
|
||||||
return calendar.get(Calendar.WEEK_OF_YEAR);
|
return calendar.get(Calendar.WEEK_OF_YEAR);
|
||||||
|
@ -25,8 +25,8 @@ public class WeekNumberUsingCalendar {
|
||||||
return calendar.get(Calendar.WEEK_OF_YEAR);
|
return calendar.get(Calendar.WEEK_OF_YEAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getWeekNumberFrom(int year, int month, int day, int firstDayOfWeek, int minimalDaysInFirstWeek, Locale locale) {
|
public int getWeekNumberFrom(int year, int month, int day, int firstDayOfWeek, int minimalDaysInFirstWeek) {
|
||||||
Calendar calendar = Calendar.getInstance(locale);
|
Calendar calendar = Calendar.getInstance();
|
||||||
calendar.setFirstDayOfWeek(firstDayOfWeek);
|
calendar.setFirstDayOfWeek(firstDayOfWeek);
|
||||||
calendar.setMinimalDaysInFirstWeek(minimalDaysInFirstWeek);
|
calendar.setMinimalDaysInFirstWeek(minimalDaysInFirstWeek);
|
||||||
calendar.set(year, month, day);
|
calendar.set(year, month, day);
|
||||||
|
@ -34,8 +34,4 @@ public class WeekNumberUsingCalendar {
|
||||||
return calendar.get(Calendar.WEEK_OF_YEAR);
|
return calendar.get(Calendar.WEEK_OF_YEAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
|
||||||
System.out.println(calendar.getWeekNumberFrom(2020, 2, 22, Locale.CANADA));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ public class WeekNumberUsingLocalDate {
|
||||||
.weekOfYear());
|
.weekOfYear());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getWeekNumberUsinWeekFieldsFrom(int year, int month, int day, Locale locale) {
|
public Integer getWeekNumberUsingWeekFieldsFrom(int year, int month, int day, Locale locale) {
|
||||||
LocalDate date = LocalDate.of(year, month, day);
|
LocalDate date = LocalDate.of(year, month, day);
|
||||||
|
|
||||||
return date.get(WeekFields.of(locale)
|
return date.get(WeekFields.of(locale)
|
||||||
|
|
|
@ -9,38 +9,40 @@ import java.util.Locale;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class WeekNumberUsingCalendarUnitTest {
|
public class WeekNumberUsingCalendarUnitTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenDateInStringAndDateFormatUsingLocaleItaly_thenGettingWeekNumberUsingCalendarIsCorrectlyReturned() throws ParseException {
|
public void givenDateFormatAndLocaleItaly_whenGetWeekNumber_thenWeekIsReturnedCorrectly() throws ParseException {
|
||||||
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
||||||
|
|
||||||
assertEquals(12, calendar.getWeekNumberFrom("20200322", "yyyyMMdd", Locale.ITALY));
|
assertEquals(12, calendar.getWeekNumberFrom("20200322", "yyyyMMdd", Locale.ITALY));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenDateInStringAndDateFormatUsingLocaleCanada_thenGettingWeekNumberUsingCalendarIsCorrectlyReturned() throws ParseException {
|
public void givenDateFormatAndLocaleCanada_whenGetWeekNumber_thenWeekIsReturnedCorrectly() throws ParseException {
|
||||||
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
||||||
|
|
||||||
assertEquals(13, calendar.getWeekNumberFrom("20200322", "yyyyMMdd", Locale.CANADA));
|
assertEquals(13, calendar.getWeekNumberFrom("20200322", "yyyyMMdd", Locale.CANADA));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenDateInYearMonthDayNumbersLocaleItaly_thenGettingWeekNumberUsingCalendarIsCorrectlyReturned() {
|
public void givenDateUsingFieldsAndLocaleItaly_whenGetWeekNumber_thenWeekIsReturnedCorrectly() {
|
||||||
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
||||||
|
|
||||||
assertEquals(12, calendar.getWeekNumberFrom(2020, 2, 22, Locale.ITALY));
|
assertEquals(12, calendar.getWeekNumberFrom(2020, 2, 22, Locale.ITALY));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenDateInYearMonthDayNumbersLocaleItalyChangingWeekCalculationSettings_thenGettingWeekNumberUsingCalendarIsCorrectlyReturned() {
|
public void givenDateUsingFieldsAndLocaleCanada_whenGetWeekNumber_thenWeekIsReturnedCorrectly() {
|
||||||
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
|
||||||
|
|
||||||
assertEquals(13, calendar.getWeekNumberFrom(2020, 2, 22, Calendar.SUNDAY, 4, Locale.ITALY));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void givenDateInYearMonthDayNumbersLocaleCanada_thenGettingWeekNumberUsingCalendarIsCorrectlyReturned() {
|
|
||||||
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
||||||
|
|
||||||
assertEquals(13, calendar.getWeekNumberFrom(2020, 2, 22, Locale.CANADA));
|
assertEquals(13, calendar.getWeekNumberFrom(2020, 2, 22, Locale.CANADA));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDateUsingFieldsAndLocaleItaly_whenChangingWeekCalcSettings_thenWeekIsReturnedCorrectly() {
|
||||||
|
WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar();
|
||||||
|
|
||||||
|
assertEquals(13, calendar.getWeekNumberFrom(2020, 2, 22, Calendar.SUNDAY, 4));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,42 +8,37 @@ import org.junit.Test;
|
||||||
|
|
||||||
public class WeekNumberUsingLocalDateUnitTest {
|
public class WeekNumberUsingLocalDateUnitTest {
|
||||||
@Test
|
@Test
|
||||||
public void givenDateInStringAndDateFormatUsingWeekFieldsWithLocaleItaly_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() {
|
public void givenDateFormatAndLocaleItaly_whenGetWeekNumber_thenWeekIsReturnedCorrectly() {
|
||||||
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
||||||
|
|
||||||
assertEquals(12, localDate.getWeekNumberUsingWeekFiedsFrom("20200322", "yyyyMMdd", Locale.ITALY)
|
assertEquals(Integer.valueOf(12), localDate.getWeekNumberUsingWeekFiedsFrom("20200322", "yyyyMMdd", Locale.ITALY));
|
||||||
.longValue());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenDateInStringAndDateFormatUsingWeekFieldsWithLocaleCanada_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() {
|
public void givenDateFormatAndLocaleCanada_whenGetWeekNumber_thenWeekIsReturnedCorrectly() {
|
||||||
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
||||||
|
|
||||||
assertEquals(13, localDate.getWeekNumberUsingWeekFiedsFrom("20200322", "yyyyMMdd", Locale.CANADA)
|
assertEquals(Integer.valueOf(13), localDate.getWeekNumberUsingWeekFiedsFrom("20200322", "yyyyMMdd", Locale.CANADA));
|
||||||
.longValue());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenDateInStringAndDateFormatUsingChronoFieds_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() {
|
public void givenDateUsingChronoFields_whenGetWeekNumber_thenWeekIsReturnedCorrectly() {
|
||||||
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
||||||
|
|
||||||
assertEquals(12, localDate.getWeekNumberUsingChronoFieldFrom(2020, 3, 22)
|
assertEquals(Integer.valueOf(12), localDate.getWeekNumberUsingChronoFieldFrom(2020, 3, 22));
|
||||||
.longValue());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenDateInYearMonthDayNumbersUsingWeekFieldsWithLocaleItaly_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() {
|
public void givenDateUsingFieldsWithLocaleItaly_whenGetWeekNumber_thenWeekIsReturnedCorrectly() {
|
||||||
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
||||||
|
|
||||||
assertEquals(12, localDate.getWeekNumberUsinWeekFieldsFrom(2020, 3, 22, Locale.ITALY)
|
assertEquals(Integer.valueOf(12), localDate.getWeekNumberUsingWeekFieldsFrom(2020, 3, 22, Locale.ITALY));
|
||||||
.longValue());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenDateInYearMonthDayNumbersUsingWeekFieldsWithLocaleCanada_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() {
|
public void givenDateUsingFieldsWithLocaleCanada_whenGetWeekNumber_thenWeekIsReturnedCorrectly() {
|
||||||
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate();
|
||||||
|
|
||||||
assertEquals(13, localDate.getWeekNumberUsinWeekFieldsFrom(2020, 3, 22, Locale.CANADA)
|
assertEquals(Integer.valueOf(13), localDate.getWeekNumberUsingWeekFieldsFrom(2020, 3, 22, Locale.CANADA));
|
||||||
.longValue());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue