package com.mm.android.deviceaddmodule.mobilecommon.widget.calendar.day; import android.graphics.Color; import java.io.Serializable; import java.util.Calendar; public class CalendarDay implements Serializable { private static final long serialVersionUID = -5456695978688356202L; private Calendar mCalendar; private int mDay; private int mMonth; private int mYear; private boolean mIsToday; private boolean mIsYesterday; private int mColor; public CalendarDay() { setTime(System.currentTimeMillis()); } public CalendarDay(int year, int month, int day) { setDay(year, month, day); } private void setTime(long timeInMillis) { if (mCalendar == null) { mCalendar = Calendar.getInstance(); } mCalendar.setTimeInMillis(timeInMillis); mMonth = mCalendar.get(Calendar.MONTH); mYear = mCalendar.get(Calendar.YEAR); mDay = mCalendar.get(Calendar.DAY_OF_MONTH); generateValue(); } public void setDay(int year, int month, int day) { if (mCalendar == null) { mCalendar = Calendar.getInstance(); } mYear = year; mMonth = month; mDay = day; mCalendar.set(year, month, day); generateValue(); } private void setIsToday() { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); int month = calendar.get(Calendar.MONTH); int year = calendar.get(Calendar.YEAR); int day = calendar.get(Calendar.DAY_OF_MONTH); mIsToday = (mMonth == month && mYear == year && mDay == day); if(mIsToday) { mColor = Color.parseColor(SimpleMonthView.COLOR_SELECTED_BG_THIS); } } private void setIsYesterday() { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.add(Calendar.DAY_OF_MONTH, -1); int month = calendar.get(Calendar.MONTH); int year = calendar.get(Calendar.YEAR); int day = calendar.get(Calendar.DAY_OF_MONTH); mIsYesterday = (mMonth == month && mYear == year && mDay == day); if(mIsYesterday) { mColor = Color.parseColor(SimpleMonthView.COLOR_SELECTED_BG_LAST); } } private void generateValue(){ setIsToday(); setIsYesterday(); } public int getDay() { return mDay; } public void setDay(int day) { this.mDay = day; } public int getMonth() { return mMonth; } public void setMonth(int month) { this.mMonth = month; } public int getYear() { return mYear; } public void setYear(int year) { this.mYear = year; } public boolean isToday() { return mIsToday; } public void setIsToday(boolean isToday) { this.mIsToday = isToday; } public boolean isYesterday() { return mIsYesterday; } public void setIsYesterday(boolean isYesterday) { this.mIsYesterday = isYesterday; } public int getColor() { return mColor; } public void setColor(int color) { this.mColor = color; } public Calendar getCalendar() { return mCalendar; } public void setCalendar(Calendar calendar) { this.mCalendar = calendar; } @Override public int hashCode() { int result = 17; result = 31 * result + mYear; result = 31 * result + mMonth; result = 31 * result + mDay; return result; } @Override public boolean equals(Object o) { if(o == this) return true; if(!(o instanceof CalendarDay)) { return false; } CalendarDay calendarDay = (CalendarDay)o; return calendarDay.getDay() == mDay && calendarDay.getMonth() == mMonth && calendarDay.getYear() == mYear; } @Override public String toString() { String stringBuilder = "{ year: " + mYear + ", month: " + mMonth + ", day: " + mDay + " }"; return stringBuilder; } }