Приветствую всех, сегодня читая книгу, увидел интересный пример задачи, в котором требовалось вычислить остаток дней до дня рождения. При запуске программы пользователь должен был ввести дату своего дня рождения. А та в свою очередь после вычислений выводила информацию о том сколько дней осталось до него. Решения данного задания не сколько, но на ум пришло только эти два. Их реализацию вам и покажу.
static void Main()
{
DateTime now = DateTime.Now;
DateTime birthday;
TimeSpan wait;
Console.WriteLine("Введите дату вашего рождения в формате 'гггг, мм, дд'");
birthday = Convert.ToDateTime(Console.ReadLine());
DateTime thisYear = new DateTime(now.Year, birthday.Month, birthday.Day);
if (thisYear < now)
{
thisYear = new DateTime(now.Year + 1, birthday.Month, birthday.Day);
wait = thisYear - now;
}
else
{
wait = thisYear - now;
}
Console.WriteLine("До дня рождения осталось {0} дней", wait.Days);
// Delay.
Console.ReadKey();
}
Но с первого взгляда сложно разобраться в примере выше, но меньше вопросов останется если вы взглянете на вариант ниже:
static void Main(string[] args)
{
Console.WriteLine("Введите число дня рождения");
int day = int.Parse(Console.ReadLine());
Console.WriteLine("Введите месяц дня рождения");
int month = int.Parse(Console.ReadLine());
int count = (new DateTime(DateTime.Now.Year, month, day) - DateTime.Now).Days;
Console.WriteLine("До дня рождения осталось {0}", count);
Console.ReadKey();
}
