代号在当前一周或一个月内离开一天

问题描述 投票:0回答:2

我正在构建一个日历应用程序,需要计算(1)当前周和(2)当前月的剩余天数。

我试过的是使用java.util.Calendar API,但似乎并不完全支持。

int days = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

我怎么在CN1做这个?

提前谢谢了。

date calendar codenameone
2个回答
1
投票

我们希望在未来增加对JSR310的支持,这可能会以更优雅的方式解决这个问题。这可以作为cn1lib完成而无需修改Codename One但需要一些工作...

这样做的一点点是:

int month = cal.get(Calendar.MONTH);
cal.set(Calendar.DAY_OF_MONTH, 1);
if(month == cal.DECEMBER) {
   cal.set(Calendar.YEAR, cal.get(Calendar.YEAR) + 1);
   cal.set(Calendar.MONTH, Calendar.JANUARY);
} else {
   cal.set(Calendar.MONTH, month + 1);
}
int day = 24 * 60 * 60000;
cal.setTime(new Date(cal.getTime().getTime() - day));

1
投票

我不知道CN1,但您可以使用最大值和当前值之间的减法来计算值:

(1) cal.getActualMaximum(Calendar.DAY_OF_WEEK) - cal.get(Calendar.DAY_OF_WEEK)

(2) cal.getActualMaximum(Calendar.DAY_OF_MONTH) - cal.get(Calendar.DAY_OF_MONTH)

对于您的通知:一周的第一天是在日历的api中的星期日。如果您的周应该从星期一开始,您必须将偏差减少1。

© www.soinside.com 2019 - 2024. All rights reserved.