Разработать приложение, определяющее дату в формате «число месяц» по номеру дня в году - C#
Формулировка задачи:
Разработать приложение, определяющее дату в формате «число месяц» по номеру дня в году, вводимому с консоли. Приложение дополнительно должно запрашивать с консоли информацию о номере года для определения того, является ли год високосным. Не использовать тип DateTime. Предусмотреть проверку номера дня в году на попадание в диапазон от 1 до 365 или от 1 до 366 для високосных годов. Результат выводить на консоль.
помогите с решением :-( !!!
Решение задачи: «Разработать приложение, определяющее дату в формате «число месяц» по номеру дня в году»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Text;
namespace proga
{
class Program
{
static void Main(string[] args)
{
Console.Write("Please, enter your day (1-365/366): ") ;
int dayNumber = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("Please, enter your year: ") ;
int year = Convert.ToInt32(Console.ReadLine()) ;
bool leapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ;
if (dayNumber >= 1 && dayNumber <= ((leapYear == true) ? 366 : 365))
{
int[] monthsLength = { 31, (leapYear == true) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } ;
int sum = 0 ;
int i = 0 ;
while (sum < dayNumber) sum += monthsLength[i++] ;
sum -= monthsLength[--i] ;
sum = dayNumber - sum ;
Console.WriteLine("{0} day in {1} year is {2} day of {3} month", dayNumber, year, sum, i+1) ;
}
else Console.WriteLine("Range error!") ;
}
}
}