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