【发布时间】:2018-09-28 05:52:59
【问题描述】:
我正在使用这个库CalnderView 有谁知道如何获取月份的结束日期和最后日期?
【问题讨论】:
-
我投了反对票,因为问题不清楚:这个月,任何一个月?作为日历视图的限制或只是在您的代码中?也因为我没有看到任何搜索,没有研究,没有尝试自己解决您的问题。
-
好的,谢谢你的指导,我会记住的。
我正在使用这个库CalnderView 有谁知道如何获取月份的结束日期和最后日期?
【问题讨论】:
它与任何图书馆无关,但你可以得到它。
Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);
这将返回当前月份的实际最大值。
【讨论】:
LocalDate.now(yourTimeZone).with(TemporalAdjusters.lastDayOfMonth())。如果您的 Android 版本是新版本(API 级别 26 或更高),或者您可以负担得起外部库(搜索 ThreeTenABP)。
Used getDaterange method to get the stat and end date in month. its work for me.
public Pair<Date, Date> getDateRange() {
Date begining, end;
{
Calendar calendar = getCalendarForNow();
calendar.set(Calendar.DAY_OF_MONTH,
calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
setTimeToBeginningOfDay(calendar);
begining = calendar.getTime();
}
{
Calendar calendar = getCalendarForNow();
calendar.set(Calendar.DAY_OF_MONTH,
calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
setTimeToEndofDay(calendar);
end = calendar.getTime();
}
return Pair.of(begining, end);
}
private static Calendar getCalendarForNow() {
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTime(new Date());
return calendar;
}
private static void setTimeToBeginningOfDay(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
}
private static void setTimeToEndofDay(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_D`enter code here`AY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 999);
}
【讨论】: