这里有些不懂

来源:4-1 日历控件课时四:日历业务处理(上)

qq_西当PLUS_0

2017-12-29 10:13

有些不懂得地方    ca.set(Calendar.DAY_OF_MONTH, 1);int prevDays = ca.get(Calendar.DAY_OF_WEEK) - 1;        ca.add(Calendar.DAY_OF_MONTH, -prevDays);是什么意思呢?

写回答 关注

1回答

  • qq_钢铁浪人_0
    2018-01-03 10:30:09

     ca.set(Calendar.DAY_OF_MONTH, 1);是将日期设置到当月的第一天

    int prevDays = ca.get(Calendar.DAY_OF_WEEK) - 1;获得的是数字(星期几 - 1),日历是从星期日为起始展示的,而当月的第一天不一定就是星期日,前面也许还有几天,这就需要吧要展示的起始日期向前挪动。

    对于ca.get(Calendar.DAY_OF_WEEK),获取的值情况如下:

    SUN(1)    MON(2)    TUE(3)    WED(4)    THU(5)    FRI(6)    SAT(7)    

    可以看到prevDays恰好为起始日期需要向前挪动的值。

     然后使用ca.add(Calendar.DAY_OF_MONTH, -prevDays);即可将展示的其实日期设置为正确的数值


自定义实现日历控件

从零开始,循序渐进,轻松掌握Android 自定义控件实现

14139 学习 · 44 问题

查看课程

相似问题