Нахождение даты, с которой по настоящий день прошло n дней - C#
Формулировка задачи:
С некоторой даты по настоящий день прошло n дней, найти неизвестную дату.
Нужно чтобы дата выводилась с компьютера, а не с клавиатуры.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Количество дней в году
short[] Days = new short[] {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
short Day; // число
short Month; // месяц
int Year; // год
int NDays; // кол-во дней
Console.Write("Введите день:");
Day = Convert.ToInt16(Console.ReadLine());
Console.Write("Введите месяц:");
Month = Convert.ToInt16(Console.ReadLine());
Console.Write("Введите год:");
Year = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите кол-во дней:");
NDays = Convert.ToInt32(Console.ReadLine());
Console.Write("Начальная дата: " + Day + " / " + Month + " / " + Year + "\n");
while (NDays > 0)
{
Day--;
if (Day <= 0)
{
Month--;
if (Month <= 0)
{
Year--;
Month = 12;
}
Day = Days[Month-1];
}
NDays--;
}
Console.Write("конечная дата: " + Day + " / " + Month + " / " + Year);
Console.ReadLine();
}
}
}Решение задачи: «Нахождение даты, с которой по настоящий день прошло n дней»
textual
Листинг программы
short Day; // число
short Month; // месяц
int Year; // год
int NDays; // кол-во дней
Console.Write("Введите день:");
Day = Convert.ToInt16(Console.ReadLine());
Console.Write("Введите месяц:");
Month = Convert.ToInt16(Console.ReadLine());
Console.Write("Введите год:");
Year = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите кол-во дней:");
NDays = Convert.ToInt32(Console.ReadLine());
var date = new DateTime(Year, Month, Day);
Console.WriteLine("Начальная дата: {0:yyyy/MM/dd}", date);
switch (1 > 0)
{
case true:
var oldDate = date.AddDays(-NDays);
Console.WriteLine("конечная дата: {0:yyyy/MM/dd}", oldDate);
break;
}