Merge branch 'master' of https://github.com/eugenp/tutorials
This commit is contained in:
		
						commit
						a69abadb79
					
				| @ -0,0 +1,41 @@ | ||||
| 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)); | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,30 @@ | ||||
| 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); | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,46 @@ | ||||
| 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)); | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,49 @@ | ||||
| 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()); | ||||
|     } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user