Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: pedro,, en 09 de Marzo 2016, 23:49
-
Hola, respuestas para el ejercicio CU00831B del curso de programación web PHP desde cero.
EJERCICIO 1
Crea una función php de nombre mostrarDiasMes que reciba como argumentos un mes (valor numérico de 1 a 12) y un año (valor numérico de 4 dígitos) y muestre por pantalla el texto “extendido” correspondiente a la fecha en idioma español. Por ejemplo mostrarDiasMes(1, 2089) deberá devolver: 1 de enero de 2089, 2 de enero de 2089, 3 de enero de 2089, 4 de enero de 2089… hasta 31 de enero de 2089”.
EJERCICIO 2
Repite el ejercicio anterior, pero en esta ocasión mostrando la fecha en formato de hora tal y como se usa en Holanda y en idioma holandés.
<!DOCTYPE html>
<html>
<head>
<title>Ejercicio. CU00831B</title>
<meta charset="utf-8">
</head>
<body>
<h1>Ejercicio 1</h1>
<?php
mostrarDiasMes(1, 2089);
function mostrarDiasMes($mes, $anno){
$miFecha= gmmktime(12,0,0,$mes,1,$anno);
setlocale(LC_TIME, 'es_ES.UTF-8');
$diasMes = date('t', $miFecha);
for($i=0; $i<$diasMes; $i++){
if($i==($diasMes -1)){
echo strftime("%d de %B de %Y", gmmktime(12,0,0,$mes,($i+1),$anno)) . '. ';
} else {
echo strftime("%d de %B de %Y", gmmktime(12,0,0,$mes,($i+1),$anno)) . ', ';
}
}
}
?>
<hr>
<h1>Ejercicio 2</h1>
<?php
mostrarDiasMes1(1, 2089);
function mostrarDiasMes1($mes, $anno){
$miFecha1= gmmktime(12,0,0,$mes,1,$anno);
setlocale(LC_TIME, 'nl_NL.UTF-8');
$diasMes = date('t', $miFecha1);
for($i=0; $i<$diasMes; $i++){
if($i==($diasMes -1)){
echo strftime("%d %B %Y", gmmktime(12,0,0,$mes,($i+1),$anno)) . '. ';
} else {
echo strftime("%d %B %Y", gmmktime(12,0,0,$mes,($i+1),$anno)) . ', ';
}
}
}
?>
</body>
</html>
Saludos.
-
Hola Pedro el ejercicio cumple completo con lo que se pedía. Una posible mejora sería plantear el que para los días que son menores de 10 no se muestre el 0 antes del dígito, por ejemplo hacer que se mostrara 1 de enero de 2089, 2 de enero de 2089 en lugar de 01 de enero de 2089, 02 de enero de 2089
Saludos
-
En ese caso cambiaría '%d' por '%e', esta línea ...
echo strftime("%d de %B de %Y", gmmktime(12,0,0,$mes,($i+1),$anno)) . '. ';
por esta...
echo strftime("%e de %B de %Y", gmmktime(12,0,0,$mes,($i+1),$anno)) . '. ';
Saludos y gracias.