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