You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodenameOne修复Calendar.get(Calendar.DAY_OF_WEEK)返回值偏大问题

问题结论

你的修改不正确,无法覆盖全部7天的取值,也不满足u格式的规则要求。

错误原因

CN1的Calendar.DAY_OF_WEEK取值和Java标准一致,对应关系如下:

  • Calendar.SUNDAY(周日):取值为1
  • Calendar.MONDAY(周一):取值为2
  • Calendar.TUESDAY(周二):取值为3
  • Calendar.WEDNESDAY(周三):取值为4
  • Calendar.THURSDAY(周四):取值为5
  • Calendar.FRIDAY(周五):取值为6
  • Calendar.SATURDAY(周六):取值为7

你使用c.get(Calendar.DAY_OF_WEEK)-1的计算结果,周日会得到0,既超出了u格式要求的1~7取值范围,也不符合「周日对应7」的规则。

正确实现

不需要引入额外类,直接使用如下转换公式即可:

int dayNumber = (c.get(Calendar.DAY_OF_WEEK) + 5) % 7 + 1;
验证结果

逐天匹配1=周一、7=周日的规则:

  • 周一:(2+5) %7 +1 = 1 → 符合
  • 周二:(3+5) %7 +1 = 2 → 符合
  • 周三:(4+5) %7 +1 = 3 → 符合你测试的周三返回结果
  • 周四:(5+5) %7 +1 = 4 → 符合
  • 周五:(6+5) %7 +1 = 5 → 符合
  • 周六:(7+5) %7 +1 = 6 → 符合
  • 周日:(1+5) %7 +1 = 7 → 符合

该实现完全兼容Java、Android的标准u格式规则,且满足你在CN1环境下的开发限制。

内容的提问来源于stack exchange,提问作者P5music

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:30:02