Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Проверить, является ли год високосным - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужен исходник с++(Нахождение корней уравнения методом обратного интерполирования) http://www.cyberforum.ru/cpp-beginners/thread27280.html
Помогите пожалуйста найти данный исходник...
C++ Хранение и обработка данных структурного типа (C++) 1. Общие требования к программе При разработке программы применить технологию нисходящего проектирования. Логически законченные фрагменты оформить в виде подпрограмм, которым все необходимые данные... http://www.cyberforum.ru/cpp-beginners/thread27277.html
Диалоговое окно при выходе из программы C++
Доброго времени суток, уважаемые форумчане! У меня новичковая проблема: как заставить программму вывести диалоговое окно вида : Вы действительно хотите завершить работу? и кнопками да и нет. Проблема...
Сумма делителей данного натурального числа C++
Задание: Написать подпрограмму, которая вычисляет сумму делителей данного натурального числа Добавлено через 1 час 26 минут 24 секунды Program BesT_VII; uses wincrt; var a,i:2..maxlongint;...
C++ Почему не работает?:( [новичек] http://www.cyberforum.ru/cpp-beginners/thread27242.html
Здравствуйте люди, помогите кто чем может:) Пишу свою первую программу на С++ Builder , программа представляет собой игру "Пятнашки"(или как там ее:) ). Не получается сделать чтоб при запуске...
C++ Задача переменным значений для Combobox Доброго времени суток, уважаемые форумчане. Я учусь в школе и изучаю си++ builder 6 самостоятельно, но столкнулся с проблемой :wall:: как мне задать значения переменным для разных Item-ов... подробнее

Показать сообщение отдельно
SmittWesson
120 / 170 / 17
Регистрация: 04.06.2014
Сообщений: 1,294
21.10.2015, 15:20
Знаю, что некротема. Знаю, что ТС уже никогда не появится. Но, стала задача, получить старшее число месяца, учитывая все високосные годы, включая "особые" такие как 2000, 2400 и т.д.
Вот, что у меня получилось:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct SDateTime
{
  int time;// Время в формате hour * 100 + minute
  unsigned short
  day,    // день недели 0-6
  number,// число 1-31
  month, // месяц 1-12
  year;  // год
};
 
SDateTime date = ParseDateTime(Now());// Получаем текущую дату, день недели и время, не важно как
  int num[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
  // Определяем високосный или не високосный год
  int year = date.year;
  if(date.month == 2)// это февраль? Если февраль, делаем проверку
    if((year % 4 == 0 && year % 100 == 0 && year % 400 == 0) ||// Проверяем, делится ли год на все делители
      (year % 4 == 0 && year % 100 != 0 && year % 400 != 0)) // Проверяем, делится ли год на 4 без остатка и на 100-400 с остатком
      date.number = num[date.month-1] + 1;// Високосный - прибавляем единичку
    else date.number = num[date.month - 1];// Не високосный - просто переписываем.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru