Título: Una pequeña ayudita :)
Publicado por: yrrtni en 25 Octubre 2008, 14:52 pm
He estado tratando de aprender C# a mi propia cuenta a traves de manuales que he encontrado en internet. Bueno ahorita estoy en el capitulo #4 de un libro que me habla de sentencias ifs,while,switches,etc. Entonces uno de los ejercicios me pide lo siguiente: "El programa debe recibir como entrada dos valores: año: entero, es el año Dia: entero, es el dia del año, contando desde el primero de enero del año indicado en la variable año, validar que se ingrese un día entre 1 y 365 o entre 1 y 366 si es bisiesto. Proceso: Calcular el mes del año en que se encuentra el día indicado por la variable "Dia", y también calcular a que día del mes corresponde. Tomar en cuenta los años bisiestos. Salida: 1-Dia del mes en que se encuentra 2-Nombre del Mes en que se encuentra el dia indicado ======================================= Ejemplo: Entrada: año=2008, Dia=100 Salida: 9 de Abril ======================================= Ayuda: Un año es bisiesto si se cumplen las dos condiciones siguientes: 1- Es divisible por 4. 2- Es no divisible por 100, o es divisible por 400." Entonces yo lo logre hacer pero con muchas ifs anidadas :S mi programa es el siguiente: namespace Calendario { class Program { static void Main(string[] args) { int año, dia, x, y;/*La variable x se utiliza para calcular los dias de los meses La variable y toma el valor del dia*/
Console.WriteLine("Por favor ingrese el año: "); año = Convert.ToInt32(Console.ReadLine()); if ((año % 4 == 0 && año % 100 != 0) || año % 400 == 0)//Se calcula si el año es bisiesto { Console.WriteLine("Por favor ingrese el dia a evaluar: "); dia = Convert.ToInt32(Console.ReadLine()); if ((dia >= 1 && dia <= 366)) { if (dia >= 1 && dia <= 31) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); Console.WriteLine("Salida: {0} de Enero", dia); Console.Read(); } if (dia > 31 && dia <= 60) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 31; Console.WriteLine("Salida: {0} de Febrero", x); Console.Read(); } if (dia > 60 && dia <= 91) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 60; Console.WriteLine("Salida: {0} de Marzo", x); Console.Read(); } if (dia > 91 && dia <= 121) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y-91; Console.WriteLine("Salida: {0} de Abril", x); Console.Read(); } if (dia > 121 && dia <= 152) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y-121; Console.WriteLine("Salida: {0} de Mayo", x); Console.Read(); } if (dia > 152 && dia <= 182) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 152; Console.WriteLine("Salida: {0} de Junio", x); Console.Read(); } if (dia > 182 && dia <= 213) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 182; Console.WriteLine("Salida: {0} de Julio", x); Console.Read(); } if(dia>213 && dia<=244) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 213; Console.WriteLine("Salida: {0} de Agosto", x); Console.Read(); } if(dia>244 && dia<=274) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 244; Console.WriteLine("Salida: {0} de Septiembre", x); Console.Read(); } if(dia>274 && dia<=305) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 274; Console.WriteLine("Salida: {0} de Octubre", x); Console.Read(); } if(dia>305 && dia<=335) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 305; Console.WriteLine("Salida: {0} de Noviembre", x); Console.Read(); } if(dia>335 && dia<=366) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 335; Console.WriteLine("Salida: {0} de Diciembre", x); Console.Read(); } } else { Console.Clear(); Console.WriteLine("El dia ingresado es incorrecto"); Console.Read(); }
} else { Console.WriteLine("Por favor ingrese el dia a evaluar: "); dia = Convert.ToInt32(Console.ReadLine()); if ((dia >= 1 && dia <= 365)) { if (dia >= 1 && dia <= 31) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); Console.WriteLine("Salida: {0} de Enero", dia); Console.Read(); } if (dia > 31 && dia <= 59) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 31; Console.WriteLine("Salida: {0} de Febrero", x); Console.Read(); } if (dia > 59 && dia <= 90) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 59; Console.WriteLine("Salida: {0} de Marzo", x); Console.Read(); } if (dia > 90 && dia <= 120) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 90; Console.WriteLine("Salida: {0} de Abril", x); Console.Read(); } if (dia > 120 && dia <= 151) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 120; Console.WriteLine("Salida: {0} de Mayo", x); Console.Read(); } if (dia > 151 && dia <= 181) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 151; Console.WriteLine("Salida: {0} de Junio", x); Console.Read(); } if (dia > 181 && dia <= 212) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 181; Console.WriteLine("Salida: {0} de Julio", x); Console.Read(); } if (dia > 212 && dia <= 243) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 212; Console.WriteLine("Salida: {0} de Agosto", x); Console.Read(); } if (dia > 243 && dia <= 273) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 243; Console.WriteLine("Salida: {0} de Septiembre", x); Console.Read(); } if (dia > 273 && dia <= 304) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 273; Console.WriteLine("Salida: {0} de Octubre", x); Console.Read(); } if (dia > 304 && dia <= 334) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 304; Console.WriteLine("Salida: {0} de Noviembre", x); Console.Read(); } if (dia > 334 && dia <= 365) { Console.Clear(); Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia); y = dia; x = y - 334; Console.WriteLine("Salida: {0} de Diciembre", x); Console.Read(); }
} else { Console.Clear(); Console.WriteLine("El dia ingresado es incorrecto"); Console.Read(); } } Console.Read();
} } }
Como pueden ver si me hizo enorme >.< tons la ayuda que pido es que si por favor alguien me pasa eso a manera de switch(me imagino que el codigo se hace mas pequeño) O alguna sugerencia para hacerlo mas pequeño. Agradezco la ayuda de todos de antemano.
|