获取特定月份的第一天

时间:2012-12-04 09:44:46

标签: android date time calendar

我知道,有很多类似的问题,但我的问题更具体和复杂:

我希望从特定月份获得月份的第一天(以及下个月的第一天)。

我目前的代码:

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);

任何修复的想法?


问题中的代码是按预期工作的,问题是另一个问题!

1 个答案:

答案 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;
    }