diff --git a/core-java-modules/core-java-date-operations-2/src/main/java/com/baeldung/weeknumber/WeekNumberUsingCalendar.java b/core-java-modules/core-java-date-operations-2/src/main/java/com/baeldung/weeknumber/WeekNumberUsingCalendar.java deleted file mode 100644 index db32421aa4..0000000000 --- a/core-java-modules/core-java-date-operations-2/src/main/java/com/baeldung/weeknumber/WeekNumberUsingCalendar.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.baeldung.weeknumber; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.Locale; - -public class WeekNumberUsingCalendar { - - public int getWeekNumberFrom(String day, String dateFormat, Locale locale) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); - - Calendar calendar = Calendar.getInstance(locale); - Date date = sdf.parse(day); - calendar.setTime(date); - - return calendar.get(Calendar.WEEK_OF_YEAR); - } - - public int getWeekNumberFrom(int year, int month, int day, Locale locale) { - Calendar calendar = Calendar.getInstance(locale); - calendar.set(year, month, day); - - return calendar.get(Calendar.WEEK_OF_YEAR); - } - - public int getWeekNumberFrom(int year, int month, int day, int firstDayOfWeek, int minimalDaysInFirstWeek, Locale locale) { - Calendar calendar = Calendar.getInstance(locale); - calendar.setFirstDayOfWeek(firstDayOfWeek); - calendar.setMinimalDaysInFirstWeek(minimalDaysInFirstWeek); - calendar.set(year, month, day); - - 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)); - } -} diff --git a/core-java-modules/core-java-date-operations-2/src/main/java/com/baeldung/weeknumber/WeekNumberUsingLocalDate.java b/core-java-modules/core-java-date-operations-2/src/main/java/com/baeldung/weeknumber/WeekNumberUsingLocalDate.java deleted file mode 100644 index 4e1b7be3be..0000000000 --- a/core-java-modules/core-java-date-operations-2/src/main/java/com/baeldung/weeknumber/WeekNumberUsingLocalDate.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.baeldung.weeknumber; - -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoField; -import java.time.temporal.WeekFields; -import java.util.Locale; - -public class WeekNumberUsingLocalDate { - - public Integer getWeekNumberUsingWeekFiedsFrom(String day, String dayFormat, Locale locale) { - LocalDate date = LocalDate.parse(day, DateTimeFormatter.ofPattern(dayFormat)); - - return date.get(WeekFields.of(locale) - .weekOfYear()); - } - - public Integer getWeekNumberUsinWeekFieldsFrom(int year, int month, int day, Locale locale) { - LocalDate date = LocalDate.of(year, month, day); - - return date.get(WeekFields.of(locale) - .weekOfYear()); - } - - public Integer getWeekNumberUsingChronoFieldFrom(int year, int month, int day) { - LocalDate date = LocalDate.of(year, month, day); - - return date.get(ChronoField.ALIGNED_WEEK_OF_YEAR); - } -} \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations-2/src/test/java/com/baeldung/weeknumber/GetWeekNumberUnitTest.java b/core-java-modules/core-java-date-operations-2/src/test/java/com/baeldung/weeknumber/GetWeekNumberUnitTest.java new file mode 100644 index 0000000000..c94950da29 --- /dev/null +++ b/core-java-modules/core-java-date-operations-2/src/test/java/com/baeldung/weeknumber/GetWeekNumberUnitTest.java @@ -0,0 +1,64 @@ +package com.baeldung.weeknumber; + +import static org.junit.Assert.assertEquals; + +import java.time.LocalDate; +import java.time.temporal.ChronoField; +import java.time.temporal.WeekFields; +import java.util.Calendar; +import java.util.Locale; + +import org.junit.Test; + +public class GetWeekNumberUnitTest { + + @Test + public void givenDateUsingFieldsAndLocaleItaly_whenGetWeekNumber_thenWeekIsReturnedCorrectly() { + Calendar calendar = Calendar.getInstance(Locale.ITALY); + calendar.set(2020, 10, 22); + + assertEquals(47, calendar.get(Calendar.WEEK_OF_YEAR)); + } + + @Test + public void givenDateUsingFieldsAndLocaleCanada_whenGetWeekNumber_thenWeekIsReturnedCorrectly() { + Calendar calendar = Calendar.getInstance(Locale.CANADA); + calendar.set(2020, 10, 22); + + assertEquals(48, calendar.get(Calendar.WEEK_OF_YEAR)); + } + + @Test + public void givenDateUsingFieldsAndLocaleItaly_whenChangingWeekCalcSettings_thenWeekIsReturnedCorrectly() { + Calendar calendar = Calendar.getInstance(); + calendar.setFirstDayOfWeek(Calendar.SUNDAY); + calendar.setMinimalDaysInFirstWeek(4); + calendar.set(2020, 2, 22); + + assertEquals(13, calendar.get(Calendar.WEEK_OF_YEAR)); + } + + @Test + public void givenDateUsingChronoFields_whenGetWeekNumber_thenWeekIsReturnedCorrectly() { + LocalDate date = LocalDate.of(2020, 3, 22); + + assertEquals(12, date.get(ChronoField.ALIGNED_WEEK_OF_YEAR)); + } + + @Test + public void givenDateUsingFieldsWithLocaleItaly_whenGetWeekNumber_thenWeekIsReturnedCorrectly() { + LocalDate date = LocalDate.of(2020, 3, 22); + + assertEquals(12, date.get(WeekFields.of(Locale.ITALY) + .weekOfYear())); + } + + @Test + public void givenDateUsingFieldsWithLocaleCanada_whenGetWeekNumber_thenWeekIsReturnedCorrectly() { + LocalDate date = LocalDate.of(2020, 3, 22); + + assertEquals(13, date.get(WeekFields.of(Locale.CANADA) + .weekOfYear())); + } + +} diff --git a/core-java-modules/core-java-date-operations-2/src/test/java/com/baeldung/weeknumber/WeekNumberUsingCalendarUnitTest.java b/core-java-modules/core-java-date-operations-2/src/test/java/com/baeldung/weeknumber/WeekNumberUsingCalendarUnitTest.java deleted file mode 100644 index 587a459277..0000000000 --- a/core-java-modules/core-java-date-operations-2/src/test/java/com/baeldung/weeknumber/WeekNumberUsingCalendarUnitTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.baeldung.weeknumber; - -import static org.junit.Assert.assertEquals; - -import java.text.ParseException; -import java.util.Calendar; -import java.util.Locale; - -import org.junit.Test; - -public class WeekNumberUsingCalendarUnitTest { - @Test - public void givenDateInStringAndDateFormatUsingLocaleItaly_thenGettingWeekNumberUsingCalendarIsCorrectlyReturned() throws ParseException { - WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar(); - - assertEquals(12, calendar.getWeekNumberFrom("20200322", "yyyyMMdd", Locale.ITALY)); - } - - @Test - public void givenDateInStringAndDateFormatUsingLocaleCanada_thenGettingWeekNumberUsingCalendarIsCorrectlyReturned() throws ParseException { - WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar(); - - assertEquals(13, calendar.getWeekNumberFrom("20200322", "yyyyMMdd", Locale.CANADA)); - } - - @Test - public void givenDateInYearMonthDayNumbersLocaleItaly_thenGettingWeekNumberUsingCalendarIsCorrectlyReturned() { - WeekNumberUsingCalendar calendar = new WeekNumberUsingCalendar(); - - assertEquals(12, calendar.getWeekNumberFrom(2020, 2, 22, Locale.ITALY)); - } - - @Test - public void givenDateInYearMonthDayNumbersLocaleItalyChangingWeekCalculationSettings_thenGettingWeekNumberUsingCalendarIsCorrectlyReturned() { - 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(); - - assertEquals(13, calendar.getWeekNumberFrom(2020, 2, 22, Locale.CANADA)); - } -} diff --git a/core-java-modules/core-java-date-operations-2/src/test/java/com/baeldung/weeknumber/WeekNumberUsingLocalDateUnitTest.java b/core-java-modules/core-java-date-operations-2/src/test/java/com/baeldung/weeknumber/WeekNumberUsingLocalDateUnitTest.java deleted file mode 100644 index 9b98222ece..0000000000 --- a/core-java-modules/core-java-date-operations-2/src/test/java/com/baeldung/weeknumber/WeekNumberUsingLocalDateUnitTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.baeldung.weeknumber; - -import static org.junit.Assert.assertEquals; - -import java.util.Locale; - -import org.junit.Test; - -public class WeekNumberUsingLocalDateUnitTest { - @Test - public void givenDateInStringAndDateFormatUsingWeekFieldsWithLocaleItaly_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() { - WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate(); - - assertEquals(12, localDate.getWeekNumberUsingWeekFiedsFrom("20200322", "yyyyMMdd", Locale.ITALY) - .longValue()); - } - - @Test - public void givenDateInStringAndDateFormatUsingWeekFieldsWithLocaleCanada_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() { - WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate(); - - assertEquals(13, localDate.getWeekNumberUsingWeekFiedsFrom("20200322", "yyyyMMdd", Locale.CANADA) - .longValue()); - } - - @Test - public void givenDateInStringAndDateFormatUsingChronoFieds_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() { - WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate(); - - assertEquals(12, localDate.getWeekNumberUsingChronoFieldFrom(2020, 3, 22) - .longValue()); - } - - @Test - public void givenDateInYearMonthDayNumbersUsingWeekFieldsWithLocaleItaly_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() { - WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate(); - - assertEquals(12, localDate.getWeekNumberUsinWeekFieldsFrom(2020, 3, 22, Locale.ITALY) - .longValue()); - } - - @Test - public void givenDateInYearMonthDayNumbersUsingWeekFieldsWithLocaleCanada_thenGettingWeekNumberUsingLocalDateIsCorrectlyReturned() { - WeekNumberUsingLocalDate localDate = new WeekNumberUsingLocalDate(); - - assertEquals(13, localDate.getWeekNumberUsinWeekFieldsFrom(2020, 3, 22, Locale.CANADA) - .longValue()); - } -}