android 日曆選擇器 酒店專用

2021-08-16 19:26:14 字數 2247 閱讀 9344

日曆選擇器

由於公司需求,參看了各個平台的酒店日曆選擇功能,手動寫了乙個,就當記錄下,**邏輯可能還需要再去優化下,各位小夥伴沒思路的可以參考下。。接下來正題。

看下實現後效果圖吧。。

布局上是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 ...