I made a program in javascript that calculates the age of a person, after input of a date of birth. The age check works fine, but I am having trouble with a switch(true) case. I am trying to limit the input to certain digits, because the value for the month cannot exceed 12 and depending on the month, the day cannot exceed a certain amount.
I have tried to write the same code in if statements. It still does not function.
do {
var geboorte_datum = prompt("Voer uw leeftijd in(DD/MM/YYYY)");
var age = getAge(geboorte_datum);
var delen = geboorte_datum.split('/');
var geboorte_dag = delen[0];
var geboorte_maand = delen[1];
var geboorte_jaar = delen[2];
switch (true) {
case (delen[1] === 1 && delen[0] > 31):
case (delen[1] === 2 && delen[0] > 28 && (Number.isInteger(delen[2] / 4) === "false")):
case (delen[1] === 2 && delen[0] > 29 && (Number.isInteger(delen[2] / 4) === "true")):
case (delen[1] === 3 && delen[0] > 31):
case (delen[1] === 4 && delen[0] > 30):
case (delen[1] === 5 && delen[0] > 31):
case (delen[1] === 6 && delen[0] > 30):
case (delen[1] === 7 && delen[0] > 31):
case (delen[1] === 8 && delen[0] > 31):
case (delen[1] === 9 && delen[0] > 30):
case (delen[1] === 10 && delen[0] > 31):
case (delen[1] === 11 && delen[0] > 30):
case (delen[1] === 12 && delen[0] > 31):
case (delen[1] > 12):
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
break;
case (age > 17):
alert("U heeft nog geen toegang tot deze site.");
break;
default:
alert("Welkom.");
}
}
while (geboorte_maand === 12 && geboorte_dag > 31 || geboorte_maand === 11 && geboorte_dag > 30 || geboorte_maand === 10 && geboorte_dag > 31 || geboorte_maand === 9 && geboorte_dag > 30 || geboorte_maand === 8 && geboorte_dag > 31 || geboorte_maand === 7 && geboorte_dag > 31 || geboorte_maand === 6 && geboorte_dag > 30 || geboorte_maand === 5 && geboorte_dag > 31 || geboorte_maand === 4 && geboorte_dag > 30 || geboorte_maand === 3 && geboorte_dag > 31 || geboorte_maand === 2 && geboorte_dag > 29 && (geboorte_jaar / 4).isInteger() || geboorte_maand === 1 && geboorte_dag > 31 || geboorte_maand === 2 && geboorte_dag > 29 && ((geboorte_jaar / 4).isInteger() === "false") || geboorte_maand > 12);
and my attempt with if statements:
var geboorte_datum = prompt("Voer uw leeftijd in(DD/MM/YYYY)");
var age = getAge(geboorte_datum);
var delen = geboorte_datum.split('/');
var geboorte_dag = delen[0];
var geboorte_maand = delen[1];
var geboorte_jaar = delen[2];
if (delen[1] === 1 && delen[0] > 31) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 2 && delen[0] > 28 && (Number.isInteger(delen[2] / 4) === "false")) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 2 && delen[0] > 29 && (Number.isInteger(delen[2] / 4) === "true")) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 3 && delen[0] > 31) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 4 && delen[0] > 30) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 5 && delen[0] > 31) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 6 && delen[0] > 30) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 7 && delen[0] > 31) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 8 && delen[0] > 31) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 9 && delen[0] > 30) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (geboorte_maand === 10 && geboorte_dag > 31) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 11 && delen[0] > 30) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] === 12 && delen[0] > 31) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
if (delen[1] > 12) {
alert("U heeft uw geboortedatum verkeerd ingevuld. Probeer het opnieuw.");
} else if (age < 18) {
alert("U heeft helaas nog geen toegang tot deze site.")
} else {
alert("Welkom.")
}
I expected the output to display the alerts when the input exceeds the amount of days or months. For each month I added how many days the month could have. The result of the switch(true) is however always the default. The if statements code does also not work.
Aucun commentaire:
Enregistrer un commentaire