以 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 天

没有评论

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