1. 程式人生 > >Android 仿iOS帶有星期幾的日期時間選擇器

Android 仿iOS帶有星期幾的日期時間選擇器

最近看到一個需求,就是日期時間選擇器上面需要帶有星期幾來供使用者滑動選擇,我上網搜了一些發現很多demo都跟我以前寫過的一篇日期時間選擇器差不多,(點選檢視我以前寫過的日期時間選擇器)找不到帶有星期幾的日期時間選擇器,於是自己就研究了一下。實現效果如下
這裡寫圖片描述
發現其實這個功能實現起來並沒有想象的那麼複雜。首先一天多少天是根據閏年和平年之分的也就是二月,閏年和平年的判斷方式相比大家也都知道就是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;

不多說了很多人點進來也不是看我囉嗦的,主要是過來看看效果圖和下載程式碼而已,不多說了上原始碼

如果有什麼問題歡迎留言或進群探討