Android快速實現簽到日曆

2021-08-26 15:08:01 字數 1654 閱讀 1585

總結一下需求:

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...