// Path: library/src/main/java/com/wdullaer/materialdatetimepicker/date/MonthAdapter.java
// static class MonthViewHolder extends RecyclerView.ViewHolder {
// 
//     public MonthViewHolder(MonthView itemView) {
//         super(itemView);
// 
//     }
// 
//     void bind(int position, DatePickerController mController, CalendarDay selectedCalendarDay) {
//         final int month = (position + mController.getStartDate().get(Calendar.MONTH)) % MONTHS_IN_YEAR;
//         final int year = (position + mController.getStartDate().get(Calendar.MONTH)) / MONTHS_IN_YEAR + mController.getMinYear();
// 
//         int selectedDay = -1;
//         if (isSelectedDayInMonth(selectedCalendarDay, year, month)) {
//             selectedDay = selectedCalendarDay.day;
//         }
// 
//         ((MonthView) itemView).setMonthParams(selectedDay, year, month, mController.getFirstDayOfWeek());
//         this.itemView.invalidate();
//     }
// 
//     private boolean isSelectedDayInMonth(CalendarDay selectedDay, int year, int month) {
//         return selectedDay.year == year && selectedDay.month == month;
//     }
// }
// 
// Path: library/src/main/java/com/wdullaer/materialdatetimepicker/date/MonthView.java
// public interface OnDayClickListener {
//     void onDayClick(MonthView view, CalendarDay day);
// }


import android.content.Context;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import android.view.ViewGroup;
import android.widget.AbsListView.LayoutParams;
import com.wdullaer.materialdatetimepicker.date.MonthAdapter.MonthViewHolder;
import com.wdullaer.materialdatetimepicker.date.MonthView.OnDayClickListener;
import java.util.Calendar;
import java.util.TimeZone;
        public CalendarDay(TimeZone timeZone) {
            mTimeZone = timeZone;
            setTime(System.currentTimeMillis());
        }

        public CalendarDay(long timeInMillis, TimeZone timeZone) {
            mTimeZone = timeZone;
            setTime(timeInMillis);
        }

        public CalendarDay(Calendar calendar, TimeZone timeZone) {
            mTimeZone = timeZone;
            year = calendar.get(Calendar.YEAR);
            month = calendar.get(Calendar.MONTH);
            day = calendar.get(Calendar.DAY_OF_MONTH);
        }

        @SuppressWarnings("unused")
        public CalendarDay(int year, int month, int day) {
            setDay(year, month, day);
        }

        public CalendarDay(int year, int month, int day, TimeZone timezone) {
            mTimeZone = timezone;
            setDay(year, month, day);
        }

        public void set(CalendarDay date) {
            year = date.year;
            month = date.month;
// Path: library/src/main/java/com/wdullaer/materialdatetimepicker/date/MonthAdapter.java
// static class MonthViewHolder extends RecyclerView.ViewHolder {
// 
//     public MonthViewHolder(MonthView itemView) {
//         super(itemView);
// 
//     }
// 
//     void bind(int position, DatePickerController mController, CalendarDay selectedCalendarDay) {
//         final int month = (position + mController.getStartDate().get(Calendar.MONTH)) % MONTHS_IN_YEAR;
//         final int year = (position + mController.getStartDate().get(Calendar.MONTH)) / MONTHS_IN_YEAR + mController.getMinYear();
// 
//         int selectedDay = -1;
//         if (isSelectedDayInMonth(selectedCalendarDay, year, month)) {
//             selectedDay = selectedCalendarDay.day;
//         }
// 
//         ((MonthView) itemView).setMonthParams(selectedDay, year, month, mController.getFirstDayOfWeek());
//         this.itemView.invalidate();
//     }
// 
//     private boolean isSelectedDayInMonth(CalendarDay selectedDay, int year, int month) {
//         return selectedDay.year == year && selectedDay.month == month;
//     }
// }
// 
// Path: library/src/main/java/com/wdullaer/materialdatetimepicker/date/MonthView.java
// public interface OnDayClickListener {
//     void onDayClick(MonthView view, CalendarDay day);
// }


// Path: library/src/main/java/com/wdullaer/materialdatetimepicker/date/MonthAdapter.java
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import android.view.ViewGroup;
import android.widget.AbsListView.LayoutParams;
import com.wdullaer.materialdatetimepicker.date.MonthAdapter.MonthViewHolder;
import com.wdullaer.materialdatetimepicker.date.MonthView.OnDayClickListener;
import java.util.Calendar;
import java.util.TimeZone;

        public CalendarDay(TimeZone timeZone) {
            mTimeZone = timeZone;
            setTime(System.currentTimeMillis());
        }

        public CalendarDay(long timeInMillis, TimeZone timeZone) {
            mTimeZone = timeZone;
            setTime(timeInMillis);
        }

        public CalendarDay(Calendar calendar, TimeZone timeZone) {
            mTimeZone = timeZone;
            year = calendar.get(Calendar.YEAR);
            month = calendar.get(Calendar.MONTH);
            day = calendar.get(Calendar.DAY_OF_MONTH);
        }

        @SuppressWarnings("unused")
        public CalendarDay(int year, int month, int day) {
            setDay(year, month, day);
        }

        public CalendarDay(int year, int month, int day, TimeZone timezone) {
            mTimeZone = timezone;
            setDay(year, month, day);
        }

        public void set(CalendarDay date) {
            year = date.year;
            month = date.month;
            day = date.day;