Информатика Тема "Циклические программы с вложенными циклами While и For" Задание. Составить программу.
Замечание. При решении данных задач возможно использовать оператор switch или вложенные операторы if.
С 1 января 1990 года по некоторый день прошло n дней, определить название текущего месяца.
Использовать язык программирования C#

10 Авг 2019 в 19:45
293 +1
0
Ответы
1
using System;
class Program
{
static void Main()
{
Console.WriteLine("Введите количество дней, прошедших с 1 января 1990 года:");
int n = int.Parse(Console.ReadLine());
int currentMonth = 1; // начинаем с января
int daysInMonth = 31;
while (n > daysInMonth)
{
n -= daysInMonth;
currentMonth++;
if (currentMonth == 2) // февраль
{
daysInMonth = 28;
if ((1990 % 4 == 0 && 1990 % 100 != 0) || 1990 % 400 == 0) // високосный год
daysInMonth = 29;
}
else if (currentMonth == 4 || currentMonth == 6 || currentMonth == 9 || currentMonth == 11) // апрель, июнь, сентябрь, ноябрь
{
daysInMonth = 30;
}
else
{
daysInMonth = 31;
}
}
string month;
switch (currentMonth)
{
case 1:
month = "Январь";
break;
case 2:
month = "Февраль";
break;
case 3:
month = "Март";
break;
case 4:
month = "Апрель";
break;
case 5:
month = "Май";
break;
case 6:
month = "Июнь";
break;
case 7:
month = "Июль";
break;
case 8:
month = "Август";
break;
case 9:
month = "Сентябрь";
break;
case 10:
month = "Октябрь";
break;
case 11:
month = "Ноябрь";
break;
case 12:
month = "Декабрь";
break;
default:
month = "Ошибка";
break;
}
Console.WriteLine($"Текущий месяц: {month}");
}
}

А также, можно воспользоваться более простым и рациональным решением, при условии, если есть поддержка LINQ:

using System;
using System.Linq;
using System.Globalization;
class Program
{
static void Main()
{
Console.WriteLine("Введите количество дней, прошедших с 1 января 1990 года:");
int n = int.Parse(Console.ReadLine());
DateTime date = new DateTime(1990, 1, 1).AddDays(n);
string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(date.Month);
Console.WriteLine($"Текущий месяц: {monthName}");
}
}
20 Апр 2024 в 14:59
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир