Created
July 1, 2019 21:13
-
-
Save matheusmurta/90b2b882e3f3691d144bcf5f4c6d2c5d to your computer and use it in GitHub Desktop.
teste js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- TWO STEPS TO INSTALL PREGNANCY CALCULATOR: | |
1. Copy the coding into the HEAD of your HTML document | |
2. Add the last code into the BODY of your HTML document --> | |
<!-- STEP ONE: Paste this code into the HEAD of your HTML document --> | |
<HEAD> | |
<SCRIPT LANGUAGE="JavaScript"> | |
<!-- Original: Ronnie T. Moore, Editor --> | |
<!-- Web Site: JavaScript Source Code 3000 --> | |
<! > | |
<! > | |
<!-- Begin | |
function isValidDate(dateStr) { | |
// Date validation function courtesty of | |
// Sandeep V. Tamhankar (stamhankar@hotmail.com) --> | |
// Checks for the following valid date formats: | |
// MM/DD/YY MM/DD/YYYY MM-DD-YY MM-DD-YYYY | |
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year | |
var matchArray = dateStr.match(datePat); // is the format ok? | |
if (matchArray == null) { | |
alert("Date is not in a valid format.") | |
return false; | |
} | |
month = matchArray[1]; // parse date into variables | |
day = matchArray[3]; | |
year = matchArray[4]; | |
if (month < 1 || month > 12) { // check month range | |
alert("Month must be between 1 and 12."); | |
return false; | |
} | |
if (day < 1 || day > 31) { | |
alert("Day must be between 1 and 31."); | |
return false; | |
} | |
if ((month==4 || month==6 || month==9 || month==11) && day==31) { | |
alert("Month "+month+" doesn't have 31 days!") | |
return false; | |
} | |
if (month == 2) { // check for february 29th | |
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); | |
if (day>29 || (day==29 && !isleap)) { | |
alert("February " + year + " doesn't have " + day + " days!"); | |
return false; | |
} | |
} | |
return true; | |
} | |
function dispDate(dateObj) { | |
month = dateObj.getMonth()+1; | |
month = (month < 10) ? "0" + month : month; | |
day = dateObj.getDate(); | |
day = (day < 10) ? "0" + day : day; | |
year = dateObj.getYear(); | |
if (year < 2000) year += 1900; | |
return (month + "/" + day + "/" + year); | |
} | |
function pregnancyCalc(pregform) { | |
menstrual = new Date(); // creates new date objects | |
ovulation = new Date(); | |
duedate = new Date(); | |
today = new Date(); | |
cycle = 0, luteal = 0; // sets variables to invalid state ==> 0 | |
if (isValidDate(pregform.menstrual.value)) { // Validates menstual date | |
menstrualinput = new Date(pregform.menstrual.value); | |
menstrual.setTime(menstrualinput.getTime()) | |
} | |
else return false; // otherwise exits | |
cycle = (pregform.cycle.value == "" ? 28 : pregform.cycle.value); // defaults to 28 | |
// validates cycle range, from 22 to 45 | |
if (pregform.cycle.value != "" && (pregform.cycle.value < 22 || pregform.cycle.value > 45)) { | |
alert("Your cycle length is either too short or too long for \n" | |
+ "calculations to be very accurate! We will still try to \n" | |
+ "complete the calculation with the figure you entered. "); | |
} | |
luteal = (pregform.luteal.value == "" ? 14 : pregform.luteal.value); // defaults to 14 | |
// validates luteal range, from 9 to 16 | |
if (pregform.luteal.value != "" && (pregform.luteal.value < 9 || pregform.luteal.value > 16)) { | |
alert("Your luteal phase length is either too short or too long for \n" | |
+ "calculations to be very accurate! We will still try to complete \n" | |
+ "the calculation with the figure you entered. "); | |
} | |
// sets ovulation date to menstrual date + cycle days - luteal days | |
// the '*86400000' is necessary because date objects track time | |
// in milliseconds; 86400000 milliseconds equals one day | |
ovulation.setTime(menstrual.getTime() + (cycle*86400000) - (luteal*86400000)); | |
pregform.conception.value = dispDate(ovulation); | |
// sets due date to ovulation date plus 266 days | |
duedate.setTime(ovulation.getTime() + 266*86400000); | |
pregform.duedate.value = dispDate(duedate); | |
// sets fetal age to 14 + 266 (pregnancy time) - time left | |
var fetalage = 14 + 266 - ((duedate - today) / 86400000); | |
weeks = parseInt(fetalage / 7); // sets weeks to whole number of weeks | |
days = Math.floor(fetalage % 7); // sets days to the whole number remainder | |
// fetal age message, automatically includes 's' on week and day if necessary | |
fetalage = weeks + " week" + (weeks > 1 ? "s" : "") + ", " + days + " days"; | |
pregform.fetalage.value = fetalage; | |
return false; // form should never submit, returns false | |
} | |
// End --> | |
</script> | |
</HEAD> | |
<!-- STEP TWO: Copy this code into the BODY of your HTML document --> | |
<BODY> | |
<center> | |
<form onSubmit="return pregnancyCalc(this);"> | |
<table> | |
<tr><td> | |
<pre> | |
Last Menstrual Period: <input type=text name=menstrual value="" size=10 maxlength=10> | |
(MM/DD/YYYY format) | |
Average Length of Cycles: <input type=text name=cycle value="" size=3 maxlength=3> (22 to 45) | |
(defaults to 28) | |
Average Luteal Phase Length: <input type=text name=luteal value="" size=3 maxlength=3> (9 to 16) | |
(defaults to 14) | |
<center><input type=submit value="Calculate!"></center> | |
Estimated Conception: <input type=text name=conception value="" size=20> | |
Estimated Due Date: <input type=text name=duedate value="" size=20> | |
Estimated Fetal Age: <input type=text name=fetalage value="" size=20> | |
</pre> | |
</td></tr> | |
</table> | |
</form> | |
</center> | |
<!-- Script Size: 5.17 KB --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment