package com.philliphsu.bottomsheetpickers.date;
import android.text.format.Time;
import java.util.Calendar;
import java.util.Date;
/**
* A convenience class to represent a specific date.
*/
final class CalendarDay {
private Calendar calendar;
private Time time;
int year;
int month;
int day;
CalendarDay() {
setTime(System.currentTimeMillis());
}
CalendarDay(long timeInMillis) {
setTime(timeInMillis);
}
CalendarDay(Calendar calendar) {
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
}
CalendarDay(int year, int month, int day) {
setDay(year, month, day);
}
void set(CalendarDay date) {
year = date.year;
month = date.month;
day = date.day;
}
void setDay(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
Date getDate() {
if (calendar == null) {
calendar = Calendar.getInstance();
}
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, day);
return calendar.getTime();
}
synchronized void setJulianDay(int julianDay) {
if (time == null) {
time = new Time();
}
time.setJulianDay(julianDay);
setTime(time.toMillis(false));
}
private void setTime(long timeInMillis) {
if (calendar == null) {
calendar = Calendar.getInstance();
}
calendar.setTimeInMillis(timeInMillis);
month = calendar.get(Calendar.MONTH);
year = calendar.get(Calendar.YEAR);
day = calendar.get(Calendar.DAY_OF_MONTH);
}
}