7
8
using System;
namespace _8
{
class Program
{
static void Main(string[] args)
{
int dia, mes, ano, mas, auxdia = 0, auxme = 31, auxano = 0, numano = 0, numes = 0;
Console.WriteLine("Introduzca el día:");
dia = int.Parse(Console.ReadLine());
Console.WriteLine("Introduzca el mes:");
mes = int.Parse(Console.ReadLine());
Console.WriteLine("Introduzca el año:");
ano = int.Parse(Console.ReadLine());
Console.WriteLine("Introduzca los días transcurridos:");
mas = int.Parse(Console.ReadLine());
//Calculamos que no hayan pasado años
if (mas >= 365)
{
//Hallo el numero de años transcurrido en el plazo de los días dados.
for (auxano = mas; auxano <= 364; auxano = auxano - 365)
{
numano++;
}
//si el año dado es bisiesto resto un dia a los dias restantes porque febrero tiene un día más.
if (ano % 4 == 0 || (ano % 100 != 0 && ano % 400 == 0))
mas = mas - ((365 * numano) - 1);
else
mas = mas - (365 * numano);
}
//calculamos que con los días restantes + el día que nos hallan dado no hallan pasado meses.
auxdia = dia + mas;
if (auxdia >= 31)
{
//Hallo el numero de meses transcurridos.
while (auxdia>=31)
{
numes++;
//trabajaremos según los días que tenga el mes, para ello debemos saber si el año en el que nos hayamos es bisisesto o no.
if ((ano + numano) % 4 == 0 || ((ano + numano) % 100 != 0 && (ano + numano) % 400 == 0))
{
switch (mes)
{
//Trabajo con los meses con 31 días
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
auxme = 31;
break;
//si estamos en el mes 12, sumamos un año y entramos en enero.
case 12:
numano++;
numes = 0;
mes = 1;
break;
//Trabajo con los meses con 30 días
case 4:
case 6:
case 9:
case 11:
auxme = 30;
break;
case 2:
auxme = 29;
break;
default:
Console.WriteLine("Fecha incorrecta");
break;
}
}
//si no es bisiesto
else
{
switch (mes)
{
//Trabajo con los meses con 31 días
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
auxme = 31;
break;
//si estamos en el mes 12, sumamos un año y entramos en enero.
case 12:
numano++;
numes = 0;
mes = 1;
break;
//Trabajo con los meses con 30 días
case 4:
case 6:
case 9:
case 11:
auxme = 30;
break;
case 2:
auxme = 28;
break;
default:
Console.WriteLine("Fecha incorrecta");
break;
}
}
auxdia = auxdia - auxme;
}
}
Console.WriteLine("La fecha será {0}/{1}/{2}", auxdia, mes + numes, ano + numano);
Console.ReadKey();
}
}
}
9
10
11
12
13
14
15
16
0 comentarios:
Publicar un comentario