通过Time4J获取一个月的天数



有没有办法使用time4j lib来获得一个月的天数?
在Android默认日历中,我们可以像下面的

一样简单地获得它
Calendar calendar=Calendar.getInstance();
int numOfDaysInMonth=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);      

我的意思是一种标准方式,不是像下一个月的第一天那样疯狂的方式,然后一天回来。
因此,我们可以在Time4J日历中这样做,例如" Persiancalendar"

使用默认最大值的 @贵金的答案有一个问题:它不使用任何日历上下文,因此在上个月的eSfand无法确定LEAP年中的最大值。但是@Tunaki给出的旧评论已经是一个很好的简单答案:

PersianCalendar today = PersianCalendar.nowInSystemTime();
int lengthOfCurrentMonth = today.lengthOfMonth();

另外,您也可以使用元素PersianCalendar.DAY_OF_MONTH,但是您应该确定上下文最大值,而不是默认最大值:

PersianCalendar today = PersianCalendar.nowInSystemTime();
int lengthOfCurrentMonth = today.getMaximum(PersianCalendar.DAY_OF_MONTH);

两种表达式将以各种方式产生相同的结果,并且完全等效。

在标准月份(Farvardin(1)直到巴曼(11))结果将与默认最大值一致。但是上个月,Esfand在正常年份有29天或在LEAP年度30天。此处介绍的这两种方法都将考虑到这一点(但不是默认最大方法)。

最新更新