.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");
            }
       }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы