PersianMaterialDateTimePicker
PersianMaterialDateTimePicker copied to clipboard
Selected days
با سلام اگر کتابخونه منقضی شده و دیگه پشتیبانی نمیشه لطفا اعلام کنید... چون الان حتی Sample خودتون هم کار نمیکنه قسمت selecteddays
این تقویمو اگه دستی توی پروژه تون کپی کنید میتونید این کد رو به کلاس PersianCalander در متد addPersianDate اضاف کنید
else if(field == DAY_OF_MONTH){
int day = getPersianDay();
setPersianDate(persianYear , persianMonth , (amount));
return;
}
و از این متد برای ست کردن روز استفاده کنیم
pc[i].addPersianDate(Calendar.DAY_OF_MONTH , i);
در تایید صحبت دوستمون و منباب تکمیل کارشون اگر میخوایید یک تاریخ رو بگیره به فرض مثال 1398/01/02 و 1399/01/23 این روز ها رو فقط فعال کنه به این شکل عمل کنید :
این کد رو در کلاس PersianCalendar و به جای متد addPersianDate قرار دهید :
public void addPersianDate(int field, int amount , int amount1 , int amount2) { if (amount == 0) { return; // Do nothing! }
if (field < 0 || field >= ZONE_OFFSET) {
throw new IllegalArgumentException();
}
if (field == YEAR) {
setPersianDate(this.persianYear + amount, getPersianMonth(),
this.persianDay);
return;
} else if (field == MONTH) {
setPersianDate(this.persianYear
+ ((getPersianMonth() + amount) / 12),
(getPersianMonth() + amount) % 12, this.persianDay);
return;
}else if(field == DAY_OF_MONTH){
setPersianDate((amount) , (amount1) , (amount2) );
return;
}
add(field, amount);
calculatePersianDate();
}
سپس به mainactivity بیاید و این کد رو به جای case R.id.multi_date_button: قرار دهید :
case R.id.multi_date_button: MultiDatePickerDialog mdpd = MultiDatePickerDialog.newInstance(MainActivity.this, null); PersianCalendar[] pc = new PersianCalendar[2]; pc[0] = new PersianCalendar(); pc[0].addPersianDate(PersianCalendar.DAY_OF_MONTH, 1398 , 00 , 02); pc[1] = new PersianCalendar(); pc[1].addPersianDate(PersianCalendar.DAY_OF_MONTH, 1399 ,00 , 17); mdpd.setSelectableDays(pc); mdpd.setThemeDark(modeDarkDate.isChecked()); mdpd.setTypeface(fontName); mdpd.show(getFragmentManager(), MULTIDATEPICKER); break; default: break;
پیرور و سربلند باشید