"El programa debe recibir como entrada dos valores:
anio: 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 anio, 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: anio=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:
Código:
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.