Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2016, 10:49   #1
Ирина1304
 
Регистрация: 24.11.2016
Сообщений: 4
По умолчанию нужны комментарии к программе на C# ( С некоторой даты по настоящий день прошло m месяцев, определить название месяца неизвестной даты)

к программе С некоторой даты по настоящий день прошло m месяцев, определить название месяца неизвестной даты.

Код:
 static void Main(string[] args)
        {
            Console.WriteLine("Введите сколько m месяцев прошло:");
            int curmonth = DateTime.Now.Month;
            int n = Convert.ToInt32(Console.ReadLine());
            for (int i = n; i >= 0; i--)
            {
                if (curmonth.Equals(0))
                    curmonth = 12;
                curmonth--;
            }
            string[] months = { "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" };
            Console.WriteLine(months[(curmonth)]);
            Console.ReadKey();
        }
Прошу о помощи!!!
Если у вас есть иная программа написана на С# и она описана, т.е. с комментариями, прошу прислать мне ее.!!!!

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 24.11.2016 в 10:54.
Ирина1304 вне форума Ответить с цитированием
Старый 24.11.2016, 11:02   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

вариант
Код:
 public static void Main(string[] args)
        {
            int m = Int32.Parse(Console.ReadLine()); //количество месяцев
            DateTime curData = DateTime.Now; //сегодня
            DateTime lastData = curData.AddMonths(m); //добавить m месяцев
            Console.WriteLine(lastData.ToString("MMM")); //вывести системное название месяца
        }
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 24.11.2016, 11:04   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Ирина, а конкретно какая строчка в программе не понятна?
получаем месяц текущий
в цикле до введённого числа n (кстати, непонятно, зачем переменную m в коде называть n! - но это просто не логично, не ошибка:
Как на воен.кафедре:
"Возьмём для примера M танков. Нет, M слишком много. Возьмём N танков!")
.
уменьшаем текущий месяц. причём, если перескакиваем на предыдущий год, то ставим месяц 12 (после вычитания получаем 11==декабрь).

потом вводим массив с русскими названиями месяцев
и выводим полученное число в curmonth в виде названия месяца.
всё.

p.s. кстати, можно обойтись вообще без цикла.

p.p.s. данная программа не учитывает (да, наверное, и не должна - т.к. очень условная и учебная!) нестандартные ситуации с разным числом дней в месяце.
ну например, сегодня 30 марта. m=1, т.е. один месяц назад какой был месяц? А какая дата?

___
Aleksandr H., во-первых, там дата была в прошлом, месяцы нужно отнимать.
Код:
            DateTime lastData = curData.AddMonths(-m); //отнять m месяцев
во-вторых, ваш код не выведет русское название. вместо него будет "дек" "янв" и т.д.

Последний раз редактировалось Serge_Bliznykov; 24.11.2016 в 11:13.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.11.2016, 11:25   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-вторых, ваш код не выведет русское название. вместо него будет "дек" "янв" и т.д.
вариант2
Код:
public static void Main(string[] args)
        {
            int m = Int32.Parse(Console.ReadLine());
            string[] months = {"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" };
            Console.WriteLine(months[DateTime.Now.AddMonths(-m).Month-1]);
        }
или пробовать CultureInfo
Код:
CultureInfo ci = new CultureInfo("ru-RU");
var month = DateTime.Now.ToString("MMMM", ci);
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 24.11.2016 в 11:39.
Aleksandr H. вне форума Ответить с цитированием
Старый 24.11.2016, 13:20   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Aleksandr H., вот, теперь, на мой взгляд - отлично!
можно ещё добавить вариант без использования метода AddMonths(),
но, думаю, что Ирине пока и этих вариантов хватит!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.11.2016, 19:21   #6
Ирина1304
 
Регистрация: 24.11.2016
Сообщений: 4
По умолчанию

Огромное спасибо за помощь, я разобралась!
Ирина1304 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти те даты, когда день рождения попадает на тот же день Дюша Метелкин Паскаль, Turbo Pascal, PascalABC.NET 8 23.06.2016 11:16
запрос месяца из даты uaol_kolia БД в Delphi 2 13.06.2014 10:17
Определить среднее значение продаж от даты до даты СтепКо Microsoft Office Excel 1 26.02.2011 20:08
Запрет ввода данных после наступления некоторой даты Nata75 Microsoft Office Excel 8 08.11.2010 08:24
определить день недели по заданному числу (считать в месяце 30 дней и первый день месяца понедельник dan1991 Помощь студентам 1 01.03.2009 20:59