js计算生理期代码怎么写,js实现生理期计算方法教程如下:
1.输入上次月经日期
2.输入平均月经周期
计算结果:计算出对应排卵期、安全期和月经期
js实现代码:
function CalculatePre(type) {
time = $("#"+type).val();
iYear = parseInt(time.split("-")[0]);
iMonth = parseInt(time.split("-")[1]);
iDay = parseInt(time.split("-")[2]);
if(!chkDate(time)){
alert("鏃ユ湡鏍煎紡杈撳叆鏈夎锛屼緥濡�2018-11-11");
$("#"+type).focus();
return false;
}
if(!iYear || !iMonth || !iDay){
alert("鏃ユ湡鏍煎紡杈撳叆鏈夎锛屼緥濡�2018-11-11");
$("#"+type).focus();
return false;
}
if(type == 'LastPer'){
average = $("#averagePer").val();
if(!average){
alert("璇烽€夋嫨骞冲潎鏈堢粡鍛ㄦ湡");
$("#averagePer").focus();
return false;
}
perior = 280+parseInt(average)-28;
ov = DateAdd(iMonth+'/'+iDay+'/'+iYear,parseInt(average)-28);
ovTime = ov.getFullYear()+'-'+(ov.getMonth()+1) +'-'+ ov.getDate();
}
PreDay = DateAdd(iMonth+'/'+iDay+'/'+iYear,perior);
$("#Result"+type).val(PreDay.getFullYear()+'骞�'+ (PreDay.getMonth()+1)+'鏈�'+PreDay.getDate()+'鏃�');
now = new Date();
now1 = now.getFullYear()+'-'+ (now.getMonth()+1)+'-'+now.getDate();
betweenday = daysBetween(PreDay.getFullYear()+'-'+(PreDay.getMonth()+1)+'-'+PreDay.getDate(),now1);
if(betweenday>0) {
$('#Result'+type+'Day').val(betweenday);
week = parseInt(daysBetween(now1,ovTime)/7)+1;
if(week>0 && betweenday<266 ) {
$("#P"+type+'Day').val(week);
$("#W"+type).show();
} else {
$("#W"+type).hide();
}
$("#daybetween"+type).show();
} else {
$("#W"+type).hide();
$("#daybetween"+type).hide();
}
$("#"+type+'R').show();
}
function DateAdd(time,Number) {
return new Date(Date.parse(time)+(86400000*Number));
}
function daysBetween(DateOne,DateTwo) {
var OneYear = parseInt(DateOne.split("-")[0]);
var OneMonth = parseInt(DateOne.split("-")[1]);
var OneDay = parseInt(DateOne.split("-")[2]);
var TwoYear = parseInt(DateTwo.split("-")[0]);
var TwoMonth = parseInt(DateTwo.split("-")[1]);
var TwoDay = parseInt(DateTwo.split("-")[2]);
var cha = ((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)-Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);
return cha;
}
function ShowMorePre() {
$('#morePre').show();
$('#morePre1').show();
}
function chkDate(sDate) {
var r = /\d{4}(?:-\d{1,2}){0,2}/
//姝e垯琛ㄨ揪寮忥紝鍒ゆ柇鏄惁涓簓yyy-mm-dd,yyyy-mm,yyyy鏍煎紡
if(sDate.match(r) == sDate) {
var arr = sDate.split("-")
switch(arr.length) {
//鏍规嵁涓嶅悓鐨剏yyy-mm-dd,yyyy-mm鏍煎紡鍒ゆ柇骞存湀鏃ユ暟瀛楁槸鍚︽纭�
case 3:
arr[1]=arr[1]-1;
var tmpDate=new Date(arr[0],arr[1],arr[2]);
if(tmpDate.getMonth()==arr[1] && tmpDate.getFullYear()==arr[0]) return true;
break;
case 2:
if(arr[1]<13) return true;
break;
default:
return false;
}
}
return false;
}