js计算生理期代码怎么写

本文介绍了如何使用JavaScript编写生理期计算器,通过输入上次月经日期和平均月经周期,计算并显示排卵期、安全期和月经期。提供了一个简单的js实现代码示例,并附有相关参考资料链接。
摘要由CSDN通过智能技术生成

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值