2016-09-25 2 views
-1

Я хотел бы узнать, сколько дней прошло столько лет, сколько пользователь набрал, например. 8 (количество лет), дающее выход = 2922 дня. У меня возникают проблемы с написанием, это расчет, который добавляет дополнительный день каждые 4 года (8 = 2 високосных года).Сколько дней в течение нескольких лет

Это то, что у меня есть. Это дает правильный ответ в течение 4 лет с 1 високосным годом.

Console.WriteLine("\nEnter a number."); 
       var year1 = int.Parse(Console.ReadLine()); 
       var year2 = 365; 
       var leap1 = 1; 
       var leap2 = (year1 * year2 + leap1); 

Приветствия за помощь, поскольку я новичок в C#.

+0

'год1 * год2 + Math.floor (год1/4)' – Greenonline

+2

"несколько лет" недостаточно информации. Вы должны знать, какие * годы. Например, через 6 лет может быть 1 или 2 високосных года. –

+1

@ThomasLevesque или даже 0 високосных годов. –

ответ

0

Попробуйте year1*year2 + Math.floor(year1/4)

Вам просто нужно умножить число лет на 365, а затем добавить в день за каждые четыре года.

См. Rounding values up or down in C#, для дальнейшего объяснения округления.

Однако, как Chowzen states, это будет точным только для ввода, большего или равного четырем.

2

Вы не запрашиваете достаточную информацию. Если лет являются 2011,2012,2013, то есть один прыжок услышать, но если они 2013,2014,2015, есть не високосный

((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) 

возвращает истину для високосного года, ложь для не високосный год. Високосные годы каждые четыре года, за исключением по годам столетия (1800,1900) , если они также делятся на 400 (1600,2000). Look it up. :)

Для каждого экземпляра года, который возвращает true, вы добавляете один височный день.

Смежные вопросы