function yunchan() { var year = document.getElementById('wyear'); var month = document.getElementById('wmonth'); var day = document.getElementById('wday'); if (year.value == "" || month.value == "" || day.value == "") { alert("请填写完整年月日!"); return; } if (year.value > 2050 || year.value < 1990) { alert("请填写正确年份!"); year.focus(); return; } if (month.value > 12 || month.value < 1) { alert("请填写正确月份!"); month.focus(); return; } if (day.value > 31 || day.value < 1) { alert("请填写正确日子!"); day.focus(); return; } if (!isDate(year.value, month.value, day.value)) { alert("年月日组合有错,请重新填写!"); return; } function isDate(year, month, day) { // month argument must be in the range 1 - 12 month = month - 1; // javascript month range : 0- 11 var tempDate = new Date(year, month, day); if ((year2k(tempDate.getFullYear()) == year) && (month == tempDate.getMonth()) && (day == tempDate.getDate())) { return true; } else { return; } } function year2k(d) { return (d < 1000) ? d + 1900 : d; } var stime = new Date(); stime.setFullYear(year.value); stime.setMonth(month.value - 1); stime.setDate(day.value); var yue = document.getElementById('wperiod').value; var true_number = 280; if (yue < 28) { true_number = 280 - (28 - yue); } else if (yue > 28) { true_number = 280 + (yue - 28); } else if (yue == 28) { true_number = 280; } if (yue.value != '') { var temptime = stime.getTime(); stime.setTime((stime.getTime() + true_number * 24 * 3600 * 1000)) var yuchan = stime.getFullYear() + "-" + (stime.getMonth() + 1) + "-" + stime.getDate(); var nowt = new Date(); var chatime = nowt.getTime() - temptime; var chaweek = Math.floor((chatime) / (1000 * 60 * 60 * 24 * 7)); var chaweek_1 = Math.floor((chatime) / (1000 * 60 * 60 * 24)); if (chaweek < 0) chaweek = 0; if (chaweek_1 > (true_number + 14)) { alert("你的预产期已过!"); return null; } document.getElementById('wtext').innerHTML = '您的预产期是 '+yuchan+';现在正处于孕期的第 '+chaweek+' 周'; document.getElementById('wresult').style.display = ''; var c = document.getElementById('wresult').innerHTML; var i = ''; return {c:c, i:i}; } else { return null; } } function wInit() { document.getElementById('wresult').style.display = 'none'; var d = new Date(); d.setMonth(d.getMonth() - 8); document.getElementById('wyear').value = d.getFullYear(); document.getElementById('wmonth').value = d.getMonth() + 1; document.getElementById('wday').value = d.getDate(); document.getElementById('wyear').onclick = function(event) {WdatePicker({dateFmt:'yyyy',minDate:'1901', maxDate:'2050'})}; document.getElementById('wmonth').onclick = function(event) {WdatePicker({dateFmt:'M'})}; document.getElementById('wday').onclick = function(event) {WdatePicker({dateFmt:'d'})}; var p = document.getElementById('wperiod'); for (var i = 20; i <= 45; i++) { p.options.add(new Option(i + '天', i)); } p.options[8].selected = true; } function handleWork(obj) { var v = obj.value; obj.disabled = true; obj.value = '已出结果'; // global callback handleBegin(); var res = yunchan(); if (typeof res == 'object' && res != null) { // global callback handleFinish(res.c, res.i); } obj.value = v; obj.disabled = false; }