以 Dart 为例:
Dart 中的 DateTime 周一为一周起始日,索引是 1,周日为结束日索引是 7.月索引从 1 到 12.
当前:2019-08-06
当月:2019-08-01
下月:2019-09-01

startWeekday : 当月第一天的周几 – 月开始日期索引(开始日期的周几)

endWeekday : 下月第一天的周几 – 月开始日期索引(开始日期的周几)

当月最后一天 + startWeekday + (7 – endWeekday) = 当月日历显示日期数量

以下图为例:
当月:2019-10-01 Dart 的周所以开始是 7,结束是 6.
startWeekday : 则周几为 2,(29, 30, 1)则索引为([7, 1, 2]),
endWeekday : 则周几为 5,(27, 28, 29, 30, 31, 1)则索引为([7, 1, 2, 3, 4, 5]),
最后一天:31,
则:31 + 2 + (7 – 5) = 35天。
所以日历最终显示为:上月的 29 30 两天+当月的 31 天+下月的1 2两天,共 35 天

No comments

  • :arrow:
  • :grin:
  • :???:
  • :cool:
  • :cry:
  • :shock:
  • :evil:
  • :!:
  • :idea:
  • :lol:
  • :mad:
  • :mrgreen:
  • :neutral:
  • :?:
  • :razz:
  • :oops:
  • :roll:
  • :sad:
  • :smile:
  • :eek:
  • :twisted:
  • :wink: