日曆選擇器
由於公司需求,參看了各個平台的酒店日曆選擇功能,手動寫了乙個,就當記錄下,**邏輯可能還需要再去優化下,各位小夥伴沒思路的可以參考下。。接下來正題。
看下實現後效果圖吧。。
布局上是recyclerview巢狀recyclerview,上面2023年月9月是通過自定義recyclerview.itemdecoration繪製,**下面位址有,這裡就不解說自定義recyclerview.itemdecoration了。。。
((defaultitemanimator) mbinding.rv.getitemanimator()).setsupportschangeanimations(false);
//當前日期轉date
******dateformat ymd_sdf=new ******dateformat("yyyy-mm-dd");
try
msetdate = ymd_sdf.parse(currentdate);
} catch (parseexception e)
//修改日曆物件的日期
calendar c = calendar.getinstance();
c.settime(msetdate);
//獲取月份 月份是從0開始需要+1
int firstm= c.get(calendar.month)+1;
//日期
int days=c.get(calendar.date);
//週幾
int week=c.get(calendar.day_of_week);
//獲取當前這個月最大天數
int maxdys=c.getactualmaximum(calendar.day_of_month);
int startdate=0;
//日 一 二 三 四 五 六
//- - 當前
//需要求上周末的日期(週末到周一的日期)填補
if("1".equals(week+""))else
dateinfo info = new dateinfo();
listdaylist=new arraylist<>();
info.setdate(c.get(calendar.year)+ "年" + firstm + "月");
//根據週末日期開始計算到結尾日期的天數
//當小於當前日期時,是不可選,setenable(false)
//如果上周末是大於當前的,說明上周末是上個月的
//如何判斷呢,1,當前日期小於週末則是上個月 2,其他情況是當前日期肯定會大於週末
if(days以上是計算當前月的日曆表,currentdate是從伺服器拉取的時間,這裡我們可以模仿下,設定乙個日期yyyy-mm-dd,獲取calendar物件,設定時間為currentdate。以週日-週六為標準。首先理清下 ,計算第乙個週末是上個月的週日還是本月的週日,如果是上個月週末,我們需要獲取上個週日的日期和上個月最後乙個月的最後一天日期,計算相差的日期。如果第乙個週日是本月,則當前日期肯定大於上週日的日期。
//獲取下3個月的資料
for (int i=1 ;i<8;i++) catch (parseexception e)
if(curdate==null)return;
calendar calendar= calendar.getinstance();
calendar.settime(curdate);
calendar.add(calendar.date,1);
int year= integer.parseint(date.split("-")[0]);
int month= integer.parseint(date.split("-")[1]);
if(year==calendar.get(calendar.year) && month==calendar.get(calendar.month)+1 && c_stratchildposition該方法根據c_stratchildposition,這個是currentdate日期在陣列列表的位置標識,根據該標識去初始化預設的「今天」「明天」。
大概的計算也就這幾個地方,其他的基本都是重新整理邏輯,**裡注釋也比較詳細。可以參考**來理解。。。。寫的不好請多多諒解。。。謝謝各位。
gitlub位址
不錯的JS日曆選擇器
網上看到的乙個不錯的js日曆選擇器,先看一下效果,如下 js 如下 document.write document.write function writeiframe function twebcalendar 初始化日曆的設定 var webcalendar new twebcalendar f...
自定義酒店日期選擇器
自定義日期區間選擇器,類似於途家等酒店 旅遊日期區間選擇器 類似於途家等酒店日期選擇器,彈出自定義的popupwindow,監聽日期選中,返回結果。已經開源到github上,提供外掛程式化。wiki 1.新增依賴 step 1.add it in your root build.gradle at ...
ANDROID 顏色選擇器
這兩天花了點時間做了乙個android 的 顏色選擇器 看了幾篇文章.其中有乙個是 as3調色盤演算法 裡面有介紹了原理.我們經常看到這種樣子的顏色選擇器吧.我這裡就只是簡單說一下.1構建一張 七彩圖 然後其實右邊的亮度選擇是 這樣我們的 就可以進行啦.建立七彩 private void init ...