<!Doctype html><html><head> <meta content="text/html" charset="utf-8" http-equiv="content-type"></head><body><script> /** * @params string type 填写弹出框的提示类型 y 年 m 月 d 天 * */ function myPrompt(type) { //弹出方法 var strTemp = ‘请输入出生的‘; var errMsg = ‘请正确输入‘; var strType = ‘‘; switch (type) { case ‘y‘: strType += ‘年份(1900-目前年份)‘; break; case ‘m‘: strType += ‘月份‘; break; case ‘d‘: strType += ‘日期‘; break; default: console.log(‘传参错误‘) } var val = prompt(strTemp + strType);//获取输入信息 if (isNaN(val)) { //如果不为数字返回重新填写 alert(errMsg + strType); val = myPrompt(type); } val = parseInt(val); //防止出现 04 之类2位数 if (type == ‘y‘ && !checkYear(val)) {//如果为年判断年输入是否正确 alert(errMsg + strType); val =myPrompt(type); //重新填写 } if (type == ‘m‘ && !checkMonth(val)) {//如果为月判断月输入是否正确 alert(errMsg + strType); val =myPrompt(type);//重新填写 } if (type == ‘d‘ && !checkDay( arguments[1], arguments[2],val)) {//如果为天判断天输入是否正确 参数1 2 为年月 alert(errMsg + strType); val = myPrompt(type, arguments[1], arguments[2]);//重新填写 } return val; } /** * 判断平闰年 * @params num year 填写的年份 * 闰年返回 true * */ function isYear(year) { if (0 == year % 4) { //判断 平闰年 return true } else { return false } } /** * 检测年份填写函数 * @params num year 填写的年份 * */ function checkYear(year) { //检测年份输入 var nowYear = new Date().getFullYear();//获取现在的年份 var minYear = 1900;//设置最小年份为1900年 if (minYear <= year && nowYear >= year) { return true; } else { return false; } } /** * 检测月份 * @params num month 填写的年份 * */ function checkMonth(month) { if (1 <= month && 12 >= month) { return true; } else { return false; } } /** * 判断这个月份多少天 * @params num year 填写的年份 * @params num month 填写的月份 * */ function getMonthDayNum(year, month) { var allDay = 31; //默认为大月 switch (month) { /*小月*/ case 4: case 6: case 9: case 11: allDay = 30; break; case 2: //二月 if (isYear(year)) {//判断闰年 allDay = 29; } else { allDay = 28; } break; default: //no do } return allDay; } /** * 检查天数填写函数 * @params num month 填写的年份 * @params num day 填写的天数 * @params num month 填写的月份 * */ function checkDay(year, month, day) { var allDay = getMonthDayNum(year, month);//获取这个月一共多少天 console.log(day,allDay); if (1 <= day && allDay >= day) { return true; } else { return false; } } /** * 获取出生年的多少天出生 * */ function getDay() { //获取多少天 var myYear = myPrompt(‘y‘);//年 var myMonth = myPrompt(‘m‘);//月 var myday = myPrompt(‘d‘, myYear, myMonth);//日 (传入 年月检测日的输入是否合法) var res = 0;//返回结果默认值 for (var i = 1; i < myMonth; i++) { res += getMonthDayNum(myYear, i);//获取月份的天数 console.log(i, getMonthDayNum(myYear, i), res); } res += myday;//加上日期 document.write("您出生在" + myYear+ "的第" + res + "天"); } getDay();</script></body></html>
时间: 2024-10-08 09:07:34