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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值