.NET 4.x Вычислить разницу в днях между двумя датами - C#
Формулировка задачи:
Ввести с клавиатуры дату своего рождения и текущую дату. Необходимо вычислить разницу в днях между этими датами.
using System;
class Rerr
{
static void Main()
{
const ulong DayInYear = 365;
const ulong DayInMonth = 30;
ulong Years = 0;
// Ожидаем корректного ввода
while (Years == 0)
{
// Введите время в секундах в заданном диапазоне:
Console.Write("Введите Год Вашего Рождения ");
Console.WriteLine("(от {0} до {1}):",
ulong.MinValue + 1, ulong.MaxValue);
try
{
// Считываем введенное время и преобразуем его в ulong
Years = Convert.ToUInt64(Console.ReadLine());
}
catch (Exception ex)
{
// Ошибка ввода
Console.WriteLine(ex.Message + " Попробуйте снова!!!\n");
}
}
ulong Months = 0;
// Ожидаем корректного ввода
while (Months == 0)
{
// Введите время в секундах в заданном диапазоне:
Console.Write("Введите Месяц Вашего Рождения ");
Console.WriteLine("(от {0} до {1}):",
ulong.MinValue + 1, ulong.MaxValue);
try
{
// Считываем введенное время и преобразуем его в ulong
Years = Convert.ToUInt64(Console.ReadLine());
}
catch (Exception ex)
{
// Ошибка ввода
Console.WriteLine(ex.Message + " Попробуйте снова!!!\n");
}
}
ulong Days = 0;
// Ожидаем корректного ввода
while (Days == 0)
{
// Введите время в секундах в заданном диапазоне:
Console.Write("Введите День Вашего Рождения ");
Console.WriteLine("(от {0} до {1}):",
ulong.MinValue + 1, ulong.MaxValue);
try
{
// Считываем введенное время и преобразуем его в ulong
Years = Convert.ToUInt64(Console.ReadLine());
}
catch (Exception ex)
{
// Ошибка ввода
Console.WriteLine(ex.Message + " Попробуйте снова!!!\n");
}
}
ulong Years1 = 0;
// Ожидаем корректного ввода
while (Years1 == 0)
{
// Введите время в секундах в заданном диапазоне:
Console.Write("Введите Год (сейчас)");
Console.WriteLine("(от {0} до {1}):",
ulong.MinValue + 1, ulong.MaxValue);
try
{
// Считываем введенное время и преобразуем его в ulong
Years = Convert.ToUInt64(Console.ReadLine());
}
catch (Exception ex)
{
// Ошибка ввода
Console.WriteLine(ex.Message + " Попробуйте снова!!!\n");
}
}
ulong Months1 = 0;
// Ожидаем корректного ввода
while (Months1 == 0)
{
// Введите время в в заданном диапазоне:
Console.Write("Введите Месяц (сейчас)");
Console.WriteLine("(от {0} до {1}):",
ulong.MinValue + 1, ulong.MaxValue);
try
{
// Считываем введенное время и преобразуем его в ulong
Years = Convert.ToUInt64(Console.ReadLine());
}
catch (Exception ex)
{
// Ошибка ввода
Console.WriteLine(ex.Message + " Попробуйте снова!!!\n");
}
}
ulong Days1 = 0;
// Ожидаем корректного ввода
while (Days1 == 0)
{
// Введите время в секундах в заданном диапазоне:
Console.Write("Введите День (сейчас)");
Console.WriteLine("(от {0} до {1}):",
ulong.MinValue + 1, ulong.MaxValue);
try
{
// Считываем введенное время и преобразуем его в ulong
Years = Convert.ToUInt64(Console.ReadLine());
}
catch (Exception ex)
{
// Ошибка ввода
Console.WriteLine(ex.Message + " Попробуйте снова!!!\n");
}
}
try
{
ulong a = ((DayInYear * Years) + (DayInMonth * Months) + Days) + ((DayInYear * Years1) + (DayInMonth * Months1) + Days1);
Console.WriteLine("Разница в днях:");
Console.Write(a);
}
catch (Exception ex)
{
// Ошибка ввода
Console.WriteLine(ex.Message + " Попробуйте снова!!!\n");
}
}
}
Не обращаем внимания на коммментарии типа //
Решение задачи: «.NET 4.x Вычислить разницу в днях между двумя датами»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsolProgram
{
class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine("Please enter your birthday");
DateTime date1 = Convert.ToDateTime(Console.ReadLine());
Console.WriteLine("Please enter current date");
DateTime date2 = Convert.ToDateTime(Console.ReadLine());
TimeSpan days = new TimeSpan(date2.Ticks - date1.Ticks);
Console.WriteLine("difference {0}", days.Days);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message, "Error");
}
}
}
}