Android 自定义实现日历
![测试机为小米8](https://i-blog.csdnimg.cn/blog_migrate/ffa0b2d9db55ea975f8161225c92b6b2.png)
开发工具AndroidStudio,使用组件GridView
实现步骤以及原理
- 通过Calendar获取当前年月日
- 获取指定年月的天数
- 得到当月一号是星期几
- 获取日期对象的列表数据:当月天数加上当月1号星期几之前的空白数据(比如1号是星期3,那么日期列表数据之前添加三个数据)
- 设置GridView的适配器
具体实现
- 用Calendar对象获取日期
Calendar calendar = Calendar.getInstance(); currYear = calendar.get(Calendar.YEAR); currMouth = calendar.get(Calendar.MONTH);
- 获取对应年月的天数
private int getMonthLastDay(int year, int month) { Calendar a = Calendar.getInstance(); a.set(Calendar.YEAR, year); a.set(Calendar.MONTH, month - 1); a.set(Calendar.DATE, 1);//把日期设置为当月第一天 a.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天 return a.get(Calendar.DATE); }