1. 程式人生 > >android日期時間選擇,有多少天?多少年?以及設定時間選擇範圍(即最大值和最小值)

android日期時間選擇,有多少天?多少年?以及設定時間選擇範圍(即最大值和最小值)



DatePickerDialog.OnDateSetListener bbrContactsBirthDateListener = new DatePickerDialog.OnDateSetListener() {



@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {


String month;
String dayof;
if ((monthOfYear + 1) < 10) {
month = "0" + (monthOfYear + 1);
} else {
month = (monthOfYear + 1) + "";
}
if (dayOfMonth < 10) {
dayof = "0" + dayOfMonth;
} else {
dayof = dayOfMonth + "";
}


ageDay = year + "-" + month + "-" + dayof;


SimpleDateFormat format = new SimpleDateFormat("yyyy");
int NowYear = Integer.parseInt(format.format(new Date()));
SimpleDateFormat formatM = new SimpleDateFormat("MM");
int monthNow = Integer.parseInt(formatM.format(new Date()));
SimpleDateFormat formatD = new SimpleDateFormat("dd");
int dayOfMonthNow = Integer.parseInt(formatD

.format(new Date()));

//所選擇日期到當前日期有多少年

ageSelect = NowYear - year;


int a[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 };
for (; year < NowYear; year++) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
Day += 366;
else
Day += 365;
}
for (; (monthOfYear + 1) < monthNow; monthOfYear++) {
Day += a[monthOfYear];
}
if (monthNow > 2
&& (NowYear % 4 == 0 && NowYear % 100 != 0 || NowYear % 400 == 0)) {
Day++;

}

//所選日期到當前日期有多少天

Day += dayOfMonthNow - dayOfMonth;


if (ageSelect <= 55 && Day > 27) {
insuredAge.setText(ageSelect + "");
} else if (Day < 28) {
insuredAge.setText("");
showAlert("被保險人應出生滿28天");
} else if (ageSelect > 55) {
insuredAge.setText("");
showAlert("被保險人不能超過55歲");
}


}


};
dialog = new DatePickerDialog(this, bbrContactsBirthDateListener,
calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));


SimpleDateFormat format = new SimpleDateFormat("yyyy");
int NowYear = Integer.parseInt(format.format(new Date()));
SimpleDateFormat formatM = new SimpleDateFormat("MM");
int monthNow = Integer.parseInt(formatM.format(new Date()));
SimpleDateFormat formatD = new SimpleDateFormat("dd");
int dayOfMonthNow = Integer.parseInt(formatD.format(new Date()));


Date d = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("28天前的日期:"
+ df.format(new Date(d.getTime() - (long) 28 * 24 * 60 * 60
* 1000)));

//最小值,55年前的日期

minDate = (NowYear - 55) + "-" + monthNow + "-" + dayOfMonthNow;

//最大值,27天前的日期

maxDate = df.format(new Date(d.getTime() - (long) 27 * 24 * 60 * 60
* 1000));

DatePicker datePicker = ((DatePickerDialog) dialog).getDatePicker();

//設定最大值和最小值

datePicker.setMinDate(stringToLong(minDate, "yyyy-MM-dd"));

datePicker.setMaxDate(stringToLong(maxDate, "yyyy-MM-dd"));


如下圖所示

:手機當前時間是2017-08-09