From 53a83fd48214a2f5bfeacf1d02b3a62f7b6dc0b4 Mon Sep 17 00:00:00 2001 From: Igor Levaja Date: Mon, 30 May 2016 15:39:02 +0200 Subject: [PATCH] Fix for an issue when a wrong week is selected when switching between month and week display mode. Refs #222 --- .../materialcalendarview/WeekPagerAdapter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/prolificinteractive/materialcalendarview/WeekPagerAdapter.java b/library/src/main/java/com/prolificinteractive/materialcalendarview/WeekPagerAdapter.java index 85b12bc8..62f77ebf 100644 --- a/library/src/main/java/com/prolificinteractive/materialcalendarview/WeekPagerAdapter.java +++ b/library/src/main/java/com/prolificinteractive/materialcalendarview/WeekPagerAdapter.java @@ -67,7 +67,11 @@ public CalendarDay getItem(int position) { private int weekNumberDifference(@NonNull CalendarDay min, @NonNull CalendarDay max) { long millisDiff = max.getDate().getTime() - min.getDate().getTime(); - long dayDiff = TimeUnit.DAYS.convert(millisDiff, TimeUnit.MILLISECONDS); + + int dstOffsetMax = max.getCalendar().get(Calendar.DST_OFFSET); + int dstOffsetMin = min.getCalendar().get(Calendar.DST_OFFSET); + + long dayDiff = TimeUnit.DAYS.convert(millisDiff + dstOffsetMax - dstOffsetMin, TimeUnit.MILLISECONDS); return (int) (dayDiff / DAYS_IN_WEEK); }