给定一个日期对象,我如何确定该月的最后一天?
时间:2020-03-05 18:55:58 来源:igfitidea点击:
我正在尝试使用以下代码,但返回的是错误的月份。
Calendar cal = Calendar.getInstance(); cal.setTime(sampleDay.getTime()); cal.set(Calendar.MONTH, sampleDay.get(Calendar.MONTH)+1); cal.set(Calendar.DAY_OF_MONTH, 0); return cal.getTime();
解决方案
回答
我将为下一个月的第一天创建一个日期对象,然后从该日期对象中减去一天。
回答
获取该月的天数:
Calendar cal = Calendar.getInstance(); cal.setTime(sampleDay.getTime()); int noOfLastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); Set the Calendar to the last day of this month: Calendar cal = Calendar.getInstance(); cal.setTime(sampleDay.getTime()); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); Answer It looks like you set the calendar to the first day of the next month, so you need one more line to subtract one day, to get the last day of the month that sampleDay is in: Calendar cal = Calendar.getInstance(); cal.setTime(sampleDay.getTime()); cal.roll(Calendar.MONTH, true); cal.set(Calendar.DAY_OF_MONTH, 0); cal.add(Calendar.DAY_OF_MONTH, -1);
回答
使用calObject.getActualMaximum(calobject.DAY_OF_MONTH)
有关更多信息,请参见Real的Java How-to。
代码数量不匹配