我知道,有很多类似的问题,但我的问题更具体和复杂:
我希望从特定月份获得月份的第一天(以及下个月的第一天)。
我目前的代码:
private long getFirstTime(Time inputTime) {
Time t = new Time();
t.set(inputTime);
t.monthDay = 1;
t.normalize(true);
return t.toMillis(true);
}
private long getLastTime(Time inputTime) {
Time t = new Time();
t.set(inputTime);
t.monthDay = 1;
t.month++;
t.normalize(true);
return t.toMillis(true);
}
inputTime始终是未来或过去一个月的时间。
生成如下:
Time mTimeMinus = new Time();
mTimeMinus.set(System.currentTimeMillis());
mTimeMinus.month--;
mTimeMinus.normalize(true);
Time mTimePlus = new Time();
mTimePlus.set(System.currentTimeMillis());
mTimePlus.month++;
mTimePlus.normalize(true);
任何修复的想法?
问题中的代码是按预期工作的,问题是另一个问题!
答案 0 :(得分:3)
你可以使用这样的东西
public String getFirstDay(int day, int month, int year)
{
Calendar cal = new GregorianCalendar();
cal.set(Calendar.DATE, day);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_MONTH, 1);
switch (cal.get(Calendar.DAY_OF_WEEK)) {
case Calendar.SUNDAY:
return "SUNDAY";
case Calendar.MONDAY:
return "MONDAY";
case Calendar.TUESDAY:
return "TUESDAY";
case Calendar.WEDNESDAY:
return "WEDNESDAY";
case Calendar.THURSDAY:
return "THURSDAY";
case Calendar.FRIDAY:
return "FRIDAY";
case Calendar.SATURDAY:
return "SATURDAY";
}
return null;
}