Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/163: Рейтинг темы: голосов - 163, средняя оценка - 4.67
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
1

Определение високосного года

15.11.2015, 02:47. Показов 31095. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго дня.
Не могу понять, как определить високосный год в программе. С помощью метода IsLeapYear. Помогите
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 private void timer1_Tick(object sender, EventArgs e)
        {
           
            DateTime a;
            a = DateTime.Now;
            int days = new DateTime(DateTime.Now.Year, 12, 31).DayOfYear - DateTime.Now.DayOfYear; // сколько дней осталось до нового года
         //   DateTime.IsLeapYear(a % 4 == 0 && a % 100 != 0 || a % 400 == 0); // 
            label1.Text = "Текущее время: " + a.ToLongTimeString(); //
            label2.Text = "Текущая дата: " + a.ToLongDateString();  //
            label5.Text = "Дней до нового года осталось: " + days;
        }
    }
}
Добавлено через 19 минут
Является ли год високосным или не является
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2015, 02:47
Ответы с готовыми решениями:

Определение високосного года
#include <iostream> using namespace std; bool isLeapYear(unsigned int year) { if...

Определить, каким днем недели является k-й день не високосного года
Дано целое число k (1 < k < 365). Определить, каким днем недели является k день не високосного...

Даны два целых числа: D день и M месяц,определить правильную дату не високосного года.Вывести значение D и M
Использовать операторы выбора. Даны два целых числа: D (день) и M (месяц),определить правильную...

Определение столетия по номеру года
Дан номер некоторого года(целое положительное число). Определить соответствующий ему номер...

10
548 / 479 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
15.11.2015, 03:00 2
Все намного проще. Есть операция деления с остатком

Например, в текстбох ввели год, тогда

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
Forms Code
{
       private void button1_Click(object sender, EventArgs e)
       {
           int n, t;
            n = int.Parse(textBox1.Text);
              t = (n % 4);
               if(t == 0)
                 textBox1.Text = "Год високосный";
               else
                  textBox1.Text = "Год не високосный";
       }
}
0
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
15.11.2015, 03:08  [ТС] 3
Мне нужно чтобы сразу выводило, текущую дату(дату биоса), без ввода года в текстбокс. через DateTime.Now
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
15.11.2015, 03:46 4
Лучший ответ Сообщение было отмечено илья9696 как решение

Решение

илья9696,
C#
1
2
3
4
5
6
7
8
if (DateTime.IsLeapYear(DateTime.Now.Year))
{
    // Високосный
}
else
{
    // Не високосный
}
1
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
15.11.2015, 10:34 5
Цитата Сообщение от zna926 Посмотреть сообщение
C#
1
t = (n % 4);
Если писать проверку руками, то нужна ещё проверка на делимость на 100 и на 400
год является високосным в двух случаях: либо он кратен 4, но при этом не кратен 100, либо кратен 400.
В .NET так и сделано
C#
1
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
0
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
15.11.2015, 14:16  [ТС] 6
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 {
            DateTime a;
            a = DateTime.Now;
            
            int days = new DateTime(DateTime.Now.Year, 12, 31).DayOfYear - DateTime.Now.DayOfYear; // сколько дней осталось до нового года
            
            if (DateTime.IsLeapYear(DateTime.Now.Year))
            {
                label4.Text = "Год високосный";
 
            }
            else
            {
                label3.Text = "Год не високосный";
            }
 
            label1.Text = "Текущее время: " + a.ToLongTimeString(); //
            label2.Text = "Текущая дата: " + a.ToLongDateString();  //
            label5.Text = "Дней до нового года осталось: " + days;       
        }
    }
}
Вот куда мне писать проверку? Я вообще правильно понял условие #4 поста?
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
15.11.2015, 15:02 7
Вывод информации и високосном и невисокосном годе почему-то в разные лейблы
C#
1
2
3
4
5
6
7
8
9
DateTime now = DateTime.Now;
int days = new DateTime(now.Year, 12, 31).DayOfYear - now.DayOfYear;
if (DateTime.IsLeapYear(now.Year))
    label3.Text = "Год високосный";
else
    label3.Text = "Год не високосный";
label1.Text = "Текущее время: " + now.ToLongTimeString();
label2.Text = "Текущая дата: " + now.ToLongDateString();
label5.Text = "Дней до нового года осталось: " + days;
0
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
15.11.2015, 15:13  [ТС] 8
Ну в принципе можно и в разные. Значит это правильно сделал. Но вопрос, проверку на кратность не нужно что ли выполнять теперь? Зачем она тогда указана у меня в задании?
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
15.11.2015, 15:16 9
илья9696, не нужно. IsLeapYear() всё сам проверяет, вторая такая проверка будет излишней.

Добавлено через 1 минуту
Цитата Сообщение от илья9696 Посмотреть сообщение
Зачем она тогда указана у меня в задании?
А где оно, задание это? В первом посте об этом не упоминается.
0
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
15.11.2015, 15:24  [ТС] 10
Проект выводит полную текущую дату, определяет, является ли год високосным и вычисляет, сколько дней осталось до нового года. Високосным является год, значение которого кратно 4, кроме тех годов, которые делятся на 100, но не делятся на 400.

Добавлено через 41 секунду
Вот задание, ну просто я все сделал кроме високосного года, и посчитал что его не обязательно писать

Добавлено через 5 минут
То есть я так понял, если мы не знаем метод IsLeapYear(), то для нас один путь через проверку
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
15.11.2015, 15:37 11
Цитата Сообщение от илья9696 Посмотреть сообщение
если мы не знаем метод IsLeapYear(), то для нас один путь через проверку
Вполне логично. Хотя есть ещё один путь - нагуглить такой метод
0
15.11.2015, 15:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2015, 15:37
Помогаю со студенческими работами здесь

Определение названия года по японскому календарю
Помогите написать программу в C#. 2)В японском календаре годы носят названия животных и составляют...

Перевод кода из Pascal в C# (работа с файлом, определение наименьшего года)
Здравствуйте, помогите пожалуйста перевести код в C# uses crt; var f:text; ...

Определение високосного года
Помогите, пожалуйста, не могу понять в чем ошибка. Почему компилятор "ругается"... #include...

Определение високосного года
<html> <body> <script> var a=prompt('Введите год:', ''); if ((a mod 100=0) && (a mod 400...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru