Android 仿iOS带有星期几的日期时间选择器

最近看到一个需求,就是日期时间选择器上面需要带有星期几来供用户滑动选择,我上网搜了一些发现很多demo都跟我以前写过的一篇日期时间选择器差不多,(点击查看我以前写过的日期时间选择器)找不到带有星期几的日期时间选择器,于是自己就研究了一下。实现效果如下
Android 仿iOS带有星期几的日期时间选择器_第1张图片
发现其实这个功能实现起来并没有想象的那么复杂。首先一天多少天是根据闰年和平年之分的也就是二月,闰年和平年的判断方式相比大家也都知道就是if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)还有就是一般也就是我们说的一三五七八十腊是31天,四六九十十一是30天。二月就是根据闰年29平年28.所以知道这些就很容易判断一年有多少天,还有就是一个月的天数。计算一年有多少天的代码如下

for(int i =1;i<13;i++) {
                if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
                    for (int j = 1; j < 32; j++) {
                        formatDate(dateList,y1,i,j);
                    }
                } else if (i == 4 || i == 6 || i == 9 || i == 11) {
                    for (int j = 1; j < 31; j++) {
                        formatDate(dateList,y1,i,j);
                    }
                } else if (i == 2) {
                    if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
                        for (int j = 1; j < 30; j++) {
                            formatDate(dateList,y1,i,j);
                        }
                    } else {
                        for (int j = 1; j < 29; j++) {
                            formatDate(dateList,y1,i,j);
                        }
                    }
                }
            }
public void formatDate(List<String>dateList,int y1,int i,int j){
    String strM;
    String strD;
    if(i<=9){
        strM = "0"+i;
    }else {
        strM = String.valueOf(i);
    }
    if(j<=9){
        strD = "0"+j;
    }else {
        strD = String.valueOf(j);
    }
    dateList.add(y1+"-"+strM + "-" + strD + "("+getWeek(y1+"-"+i+"-"+j)+")");
}

仅仅有这些还是不够的,这只是一年的天数整合到一个集合里面而已,还有就是我们要求能够显示几年的期限,一般这样的需求也就是三年而已,比如到2016年底的下一年的日期2017年1月1日,2016年初的上一年2015年12月31所以就整了一个3年的期限,主要是以当前年份为中间值,具体的实现如下

Calendar c = Calendar.getInstance();
        int y = c.get(Calendar.YEAR);
        int y1 = y-1;
        int y2 = y+1;

不多说了很多人点进来也不是看我啰嗦的,主要是过来看看效果图和下载代码而已,不多说了上源码

Github下载源码

csdn下载地址

(点击查看我以前写过的日期时间选择器)

如果有什么问题欢迎留言或进群探讨

你可能感兴趣的:(android)