1

似たような質問がたくさんあることは知っていますが、私の質問はもう少し具体的で複雑です。

特定の月から、月の初日 (および翌月) を取得したいと考えています。

私の現在のコード:

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

修正のためのアイデアはありますか?


質問のコードは意図したとおりに機能していますが、問題は別のものでした!

4

1 に答える 1

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;
    }
于 2012-12-04T10:06:28.873 に答える