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

10 Авг 2019 в 19:45
247 +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 Апр в 14:59
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 887 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир