Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio3
De WikiEducator
Tip: Observa:
- La función rand me retorna un valor aleatorio entre dos valores facilitados
- Mira lo de año bisiesto (que sea divisible para 4 y que no lo sea para 100 a no ser que lo sea por 400).
- Uso una variable para informar un poco del tipo de error
- Importante el break en un case, revisa la teoría, cuando hay una coincidencia ejecuta todos los case hasta que encuentra un break
- Observa como se concatenan cadenas con el ., no se puede concatenar con +, por que es un operador aritmético e inmediatamente convertiría los valores a numéricos.
<?php $dia = rand(1, 35); $mes = rand(1, 14); $y = rand(1, 3000); /*Para probar pon valores explícitos en lugar de aleatorios $dia = 29; $mes = 2; $y = 2005; */ //Variable para controlar error en la fecha $error = false; //Variable para ver si año es bisiesto $bisiesto = (($y%4==0) && (($y%100!=0)||($y%400==0))); //Construimos la fecha en una cadena $fecha = $dia."/".$mes."/"."$y"; switch ($mes){ //Meses de 31 días case 1: case 3: case 5: case 7: case 8: case 10: case 12: if ($dia>31) $error ="día"; break; //Meses de 30 días case 4: case 5: case 9: case 11: if ($dia>30) $error ="día"; break; case 2: if ($bisiesto == true){ if ($dia>29) $error="día"; }else if ($dia>28) $error="día en febrero en mes no bisiesto"; break; default: $error="mes"; } if ($error) echo "La fecha $fecha es incorrecta en $error<br />"; else echo "La fecha $fecha es correcta<br />"; ?>