Zwangerschapscalculator

<script language="JavaScript">



codate = new Date(); //bevruchtingsdatum

daymsecs = 60*60*24*1000; //datum naar timestamp maken

c=28; // Standaard cyclus



function due_date() 

{

	// dag maand jaar en cyclus uit het formulier halen

	var d = parseInt(document.getElementById('day').value);

	var m = parseInt(document.getElementById('month').value);

	var y = parseInt(document.getElementById('year').value);

	c = parseInt(document.getElementById('cycle').value);



	// ovulatiedatum maken

    var starto = new Date();

	var dagNummer = starto.getDate();

	

	//maand min 1, plus de cyclus min 14 dagen is de bevruchtingsdatum

	starto.setFullYear(y);

	

	//als het de 31e van de maand is, maak het de 30e om te voorkomen dat er twee manden worden afgeteld.

	if (dagNummer == 31)

	{	

	starto.setDate(d-1);		

	}

	

	else

	{

	starto.setDate(d);		

	}	

	

	starto.setMonth(m-1);

	

	//als het de 31e van de maand is, zet de datum weer terug naar de 31e

	if (dagNummer == 31)

	{	

	starto.setDate(d);		

	}

	

	starto.setTime(starto.getTime() + ((c * daymsecs) - daymsecs*14));



	//resultaat opslaan in 'codate'

	codate.setTime(starto.getTime());

	

	// conception waarde weergeven

	document.getElementById('conception').value = formatted_date(starto);

	

	//variabele voor uitgerekende datum maken

	var duedate = new Date(); 

	

	//begin ovulatie x 266 dagen = uitgerekende datum

	duedate.setTime(starto.getTime() + daymsecs*266);

	document.getElementById('due').value = formatted_date(duedate);

	

	//variabele maken voor de huidige datum

	var timenow = new Date();	

	

	//tijd die inmiddels verstreken is

	var elapsed = Math.round(((timenow.getTime()-starto.getTime())/daymsecs)+(c/2));

	var aantalWeken = Math.floor(elapsed/7);

	var aantalDagen = Math.floor(elapsed%7);

	

	//als het aantal dagen kleiner is dan 1 worden de dagen niet weergegeven

	if (aantalDagen < 1)

	{

		document.getElementById('pregnantfor').value = "" + aantalWeken + " weken";

	}

	

	//voorkomt "1 dagen"

	else if (aantalDagen == 1)

	{

		document.getElementById('pregnantfor').value = "" + aantalWeken + " weken, " + aantalDagen + " dag";

	}

	

	//anders standaard notering

	else

	{

		document.getElementById('pregnantfor').value = "" + aantalWeken + " weken, " + aantalDagen + " dagen";

	}

	

	//na 70 dagen gaat trimester 1 in

	starto.setTime(starto.getTime() + daymsecs*70);

	document.getElementById('tri1').value = formatted_date(starto);



	//na 105 dagen gaat trimester 2 in

	starto.setTime(starto.getTime() + daymsecs*105);

	document.getElementById('tri2').value = formatted_date(starto);

}



//functie voor het aantal weken op een bepaalde datum te berekenen

function num_weeks()

{

	due_date();

	

	//datum ophalen

	var d = parseInt(document.getElementById('day1').value);

	var m = parseInt(document.getElementById('month1').value);

	var y = parseInt(document.getElementById('year1').value);

	var date = new Date();

	date.setDate(d);

	date.setMonth(m-1);

	date.setFullYear(y);



	//zelfde manier als in functie due_date()

	var elapsed = Math.round(((date.getTime()-codate.getTime())/daymsecs)+(c/2));

	var aantalWeken = Math.floor(elapsed/7);

	var aantalDagen = Math.floor(elapsed%7);

	

	if (aantalDagen < 1)

	{

		document.getElementById('weeks1').value = "" + aantalWeken + " weken";

	}

	

	else if (aantalDagen == 1)

	{

		document.getElementById('weeks1').value = "" + aantalWeken + " weken, " + aantalDagen + " dag";

	}

	

	else

	{

		document.getElementById('weeks1').value = "" + aantalWeken + " weken, " + aantalDagen + " dagen";

	}

}



function calc_date()

{	

	due_date();

	var w = parseInt(document.getElementById('weeks2').value);

	var date = new Date();

	date.setTime(codate.getTime() + daymsecs*7*(w-2));

	document.getElementById('date2').value = formatted_date(date);

}



function co_date()

{

	due_date();

	var d = parseInt(document.getElementById('day3').value);

	var m = parseInt(document.getElementById('month3').value);

	var y = parseInt(document.getElementById('year3').value);

	var date = new Date();

	date.setDate(d);

	date.setMonth(m-1);

	date.setFullYear(y);

	

	date.setTime((date.getTime() - daymsecs*267));

	document.getElementById('date3').value = formatted_date(date);

}



function formatted_date(date) 

{

var month = new Array("Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober",

	"November", "December");

return("" + date.getDate() + " " + month[date.getMonth()] + " " + date.getFullYear());	

}



//functie om dagen te laten zien

function dag()

{

	for (var i=1; i<32; i++)

	{

		document.write('<option value="' + i + '">' + i + '</option>');

	}	

}



//funtie om jaren te laten zien, hier kun je de te kiezen jaren aanpassen

function jaar(selectId)

{

	var i = 0;

	var datum = new Date();	

	for (i = datum.getFullYear()-1; i < datum.getFullYear()+2; i++)

	{

		document.write('<option value="' + i + '">' + i + '</option>');

	}

	document.getElementById(selectId).selectedIndex = datum.getFullYear();

}



//funtie om maanden te laten zien

function maand()

{

	var maandNaam = new Array("", "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December");

	for (var i = 1; i <= 12; i++) 

	{

		document.writeln('<option value="' + i + '">' + maandNaam[i] + '</option>');

	}

}

</script>