Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Pe4eNbKo_O
22 / 22 / 0
Регистрация: 15.10.2012
Сообщений: 94
1

Определить название месяца

02.12.2013, 20:20. Просмотров 2107. Ответов 9
Метки нет (Все метки)

С некоторой даты по настоящий день прошло m месяцев, определить название месяца
неизвестной даты
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2013, 20:20
Ответы с готовыми решениями:

Определить название текущего месяца
Добрый день! Наведите на логику решения задачи: С 1 января 1990 года по...

Определить название текущего месяца
Помогите пожалуйста написать программу. С 1 января 1990 года по некоторый...

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

Определить название месяца заданного дня
С начала 1990 года по некоторый день прошло n месяцев и 2 дня. Определить...

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

9
Diman777
360 / 332 / 108
Регистрация: 12.02.2013
Сообщений: 653
02.12.2013, 21:10 2
C#
1
2
3
4
5
6
7
8
9
10
11
    class Program
    {
        static void Main(string[] args)
        {
            int months = int.Parse(Console.ReadLine());
 
            Console.WriteLine(DateTime.Now.AddMonths(-months).ToLongDateString());
 
            Console.ReadKey();
        }
    }
1
rattrapper
foo();
866 / 570 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
02.12.2013, 21:23 3
ну или так...
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
class Program
{
    static string[] monthes = new string[]{"Январь", "Февраль","Март", "Апрель",
        "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"};
    static void Main(string[] args)
    {
        DateTime dt = DateTime.Now;
        Console.Write("Введите m : ");
        int i = int.Parse(Console.ReadLine());
        Console.WriteLine("Результат - {0}", monthes[(dt.Month - i - 1) % 12]);
        Console.ReadKey();
    }
}
1
Pe4eNbKo_O
22 / 22 / 0
Регистрация: 15.10.2012
Сообщений: 94
02.12.2013, 22:06  [ТС] 4
Цитата Сообщение от Diman777 Посмотреть сообщение
Console.WriteLine(DateTime.Now.AddMonths(-months).ToLongDateString());
можете прокоментировать, как это работает ?
0
rattrapper
foo();
866 / 570 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
02.12.2013, 22:34 5
Цитата Сообщение от Pe4eNbKo_O Посмотреть сообщение
можете прокоментировать, как это работает ?
с лева направо:
DateTime.Now - статическое свойство структуры DateTime, который возвращает объект со значением текущей даты.
На выходе - DateTime
AddMonths() - метод, вызываемый из экземпляра структуры DateTime. Параметр - Int32 - добавляет определенное количество месяцев к этому экземпляру. -months для того, что-бы не добавить, а отнять введенное значение.
На выходе - DateTime
ToLongDateString() - преобразование экземпляра структуры DateTime в строку.
На выходе string
Эту самую строку, мы и выводим в консоли
1
Pe4eNbKo_O
22 / 22 / 0
Регистрация: 15.10.2012
Сообщений: 94
02.12.2013, 22:49  [ТС] 6
спасибо огромное, а не поможете с помощью этого класса DateTime сделать похожую задачу:
Задана дата в формате <день>.<месяц>.<год>.

Определить:

1. сколько дней прошло с начала года;
2. сколько дней осталось до конца года;
3. дату предыдущего дня;
4. дату следующего дня.
0
rattrapper
foo();
866 / 570 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
02.12.2013, 23:25 7
Pe4eNbKo_O, вроде все
C#
1
2
3
4
5
6
7
8
9
10
11
12
class Program
{
    static void Main(string[] args)
    {
        DateTime dt = DateTime.Now;
        Console.WriteLine("Дней прошло с начала года : {0}", dt.DayOfYear);
        Console.WriteLine("Дней осталось до конца года : {0}", 365 - dt.DayOfYear);
        Console.WriteLine("Дата предыдущего дня : {0}", dt.AddDays(-1).ToLongDateString());
        Console.WriteLine("Дата следующего дня : {0}", dt.AddDays(1).ToLongDateString());
        Console.ReadKey();
    }
}
Добавлено через 27 минут
С учетом високосного года
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Program
{
    static void Main(string[] args)
    {
        DateTime dt = DateTime.Now;
        Console.WriteLine("Дней прошло с начала года : {0}", dt.DayOfYear);
        Console.WriteLine("Дней осталось до конца года : {0}", 
            (dt.Year % 4 == 0 ? 366 : 365) - dt.DayOfYear);
        Console.WriteLine("Дата предыдущего дня : {0}",
            dt.AddDays(-1).ToLongDateString());
        Console.WriteLine("Дата следующего дня : {0}", 
            dt.AddDays(1).ToLongDateString());
        Console.ReadKey();
    }
}
1
Pe4eNbKo_O
22 / 22 / 0
Регистрация: 15.10.2012
Сообщений: 94
02.12.2013, 23:46  [ТС] 8
большое спасибо)
0
ViterAlex
6685 / 3701 / 1516
Регистрация: 11.02.2013
Сообщений: 8,146
Завершенные тесты: 3
03.12.2013, 03:57 9
Цитата Сообщение от rattrapper Посмотреть сообщение
С учетом високосного года
Нужно проверять кратность не 4, а 400, т.к. например год 1900 не високосный. Но лучше воспользоваться встроенной функцией:
C#
1
Console.WriteLine("Дней осталось до конца года : {0}", (DateTime.IsLeapYear(dt.Year) ? 366 : 365) - dt.DayOfYear);
1
rattrapper
foo();
866 / 570 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
03.12.2013, 22:26 10

Не по теме:

ViterAlex, согласен, я поспешил

Цитата Сообщение от ViterAlex Посмотреть сообщение
Нужно проверять кратность не 4, а 400, т.к. например год 1900 не високосный
но Ваш пример тоже не полностью раскрывает суть вопроса.
короче, если кому интересно
Проверка високосного года
C#
1
2
3
4
5
6
7
8
9
10
public static bool IsLeapYear(int year)
{
    if (year % 400 == 0)
        return true;
    else if (year % 100 == 0)
        return false;
    else if (year % 4 == 0)
        return true;
    else return false;
}



Добавлено через 7 минут

Принцип проверки
Иными словами, год является високосным, если он кратен 4 и при этом не кратен 100 либо кратен 400. Год не является високосным, если он не кратен 4 либо кратен 4, но при этом кратен 100 и не кратен 400.
0
03.12.2013, 22:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 22:26

Программа, которая по номеру месяца выдает название следующего за ним месяца
Нужно написать программу, которая по номеру месяца выдает название следующего...

Написать программу, которая по номеру месяца выдает название следующего за ним месяца
Написать программу, которая по номеру месяца выдает название следующего за ним...

Написать программу, которая по номеру месяца выдает название следующего за ним месяца
помогите пожалуйста написать программу, которая по номеру месяца выдает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru