總結一下需求:
1、展示共35天的日期,五行七列;
2、當天日期必須處在日曆最中間的一行,也就是第三行。
效果圖:
1、用兩個網格布局的recyclerview分別展示日曆的星期和日期;
2、獲取當天日期在日曆中所處的位置,由於當天日期是展示在第三行的,每行有七個日期,位置從零開始算,也就是第三行是從第14個位置到第20個位置;
3、大家會問,知道這些我們還是無法確定當天日期到底在第三行的哪個位置啊?不要著急,我通過獲取當天日期所對應週幾,得到週日對應0,周一對應1,以此類推週六對應6,發現和14相加,正好是我們想要的位置!ok!bingo!
4、知道了當天所處的位置,我們就可以分別向前和向後推算總共35個日期,一張日曆就搞定了!
activity中的**:
private dateadapter dateadapter;
private listmodels = new arraylist<>(35);
private int current;
private void initdata()
if (current - i == 0)
models.add(i, model);
}int after = 34 - current; //今天之後需要補齊多少天
for (int i = 1; i < after + 1; i++)
models.add(current + i, model);
}dateadapter.setdata(models);
}
實體類signdatemodel**:
/**
* created by kangbaibai on 2018/8/27.
* 簽到日期
*/public class signdatemodel
public signdatemodel(int status, string content)
private int status; //簽到狀態
private string content; //要展示的文字
public int getstatus()
public void setstatus(int status)
public string getcontent()
public void setcontent(string content)
}
public class dateutil
//獲取前一天的日期
public static date getdateforlastday(int amount)
//獲取後一天的日期
public static date getdatefornextday(int amount)
}
計算過程主要用到了calendar類和它的一些api,很簡單,希望能幫到大家,或者給大家提供乙個思路!覺得有用的頂一下~謝謝! js php 實現日曆簽到 js實現每日簽到功能
js var calutil else 內層for語句結束 document.write 外層for語句結束 單元格的自然序號是否代表有效日期非常關鍵,為此必須加入乙個過濾機制 僅列印有效的日期。有效的日期大於0小於小於等於處理月的總天數。三.以下是完整的js日曆 function is leap ...
簽到日曆外掛程式
1 html 2 css ul,libody.checkin.clear clearfix after clearfix for ie6 ie7 title.title p.title a.checkin lili.able qiandaoli.checked.mask.modala.closebt...
vue 日曆簽到
doctype html html lang en head meta charset utf 8 title title title script src script style ul body calendar month month ul year month year month hove...