Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/64: Рейтинг темы: голосов - 64, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 29.12.2018
Сообщений: 2

Вывести количество дней между двумя датами (как учитывать високосный год?)

04.01.2019, 00:54. Показов 12948. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пользователь вводит две даты (день, месяц, год в виде целых чисел).
Необходимо определить и вывести количество дней между этими двумя датами.Для расчетов учитывать
високосные года, а также корректное число дней в месяцах
(март-31, сентябрь-30, февраль не високосного года -28 и.т.д)

Помогите решить, все сделал, но не знаю как указать високосные года
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2019, 00:54
Ответы с готовыми решениями:

Количество дней между двумя датами. Как определить?
Подскажите есть дата отезда(тип данных дата\время) и дата приезда(тип данных дата\время) как найти количество дней(тип данных числовой)

Как рассчитать количество дней между двумя датами
Помогите пожалуйста, как в vba рассчитать количество дней между двумя датами?

Как получить количество дней между двумя датами?
Выкачивается из MS SQL две даты - как можно вычислить кол-во дней между ними при помощи JScript?

9
 Аватар для TButton
290 / 87 / 28
Регистрация: 25.01.2016
Сообщений: 529
Записей в блоге: 1
04.01.2019, 04:11
Цитата Сообщение от ksubis Посмотреть сообщение
все сделал, но не знаю как указать високосные года
Давай код, ща быстро сделаю високосные года
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
04.01.2019, 07:42
Например
C++
1
2
   if(year%4) cout<<"Не високосный";
     else cout<<"Високосный";
Ну или через тернарный оператор в одну строку
C++
1
 cout<<((year%4)?"No":"Yes")<<endl;
0
0 / 0 / 0
Регистрация: 29.12.2018
Сообщений: 2
04.01.2019, 12:28  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    int a, b, c, d, e, f, x, y = 0;
    cout << "Введите первую дату в целых числах  :" << endl;
    cin >> a >> b >> c;
    cout << "Введите вторую дату в целых числах :" << endl;
    cin >> d >> e >> f;
 
    int m1 = 31;
    int m2 = 28;
    int m3 = 31;
    int m4 = 30;
    int m5 = 31;
    int m6 = 30;
    int m7 = 31;
    int m8 = 31;
    int m9 = 30;
    int m10 = 31;
    int m11 = 30;
    int m12 = 31;
 
    
    if (b == 1) { x = a; }
    else if (b == 2) { x = m1 + a; }
    else if (b == 3) { x = m1 + m2 + a; }
    else if (b == 4) { x = m1 + m2 + m3 + a; }
    else if (b == 5) { x = m1 + m2 + m3 + m4 + a; }
    else if (b == 6) { x = m1 + m2 + m3 + m4 + m5 + a; }
    else if (b == 7) { x = m1 + m2 + m3 + m4 + m5 + m6 + a; }
    else if (b == 8) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + a; }
    else if (b == 9) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + a; }
    else if (b == 10) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + a; }
    else if (b == 11) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + a; }
    else if (b == 12) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + a; }
 
    if (e == 1) { y = d + y; }
    else if (e == 2) { y = m1 + d + y; }
    else if (e == 3) { y = m1 + m2 + d + y; }
    else if (e == 4) { y = m1 + m2 + m3 + d + y; }
    else if (e == 5) { y = m1 + m2 + m3 + m4 + d + y; }
    else if (e == 6) { y = m1 + m2 + m3 + m4 + m5 + d + y; }
    else if (e == 7) { y = m1 + m2 + m3 + m4 + m5 + m6 + d + y; }
    else if (e == 8) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + d + y; }
    else if (e == 9) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d + y; }
    else if (e == 10) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d + y; }
    else if (e == 11) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d + y; }
    else if (e == 12) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d + y; }
    if (c == f)
    {
        cout << "Количество дней между этими двумя датами :" << y - x;
    }
    else
        cout << "Количество дней между этими двумя датами :" << (f - c) + (y - x) << endl;
    system("pause");
    return 0;
}

Тут по теме if ... else
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4573 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
04.01.2019, 14:03
Цитата Сообщение от TrollHammer Посмотреть сообщение
if(year%4)
Не совсем так Разве что, на ближайшее время...
Вообще-то, правильно так:
C++
1
2
3
4
5
6
7
    if (0 == (year % 400))
        printf("Високосный");
    else if (0==(year % 100))
        printf("Не високосный");
    else if (0 == (year % 4)) 
        printf("Високосный");
    else printf("Не високосный");
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
06.01.2019, 14:22
liv, Високосный год - это каждый четвертый от нулевого (Рождества Христова), так что где у меня не правильно?
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
06.01.2019, 14:25
TrollHammer, не каждый 4й год является високосным, там несколько сложнее (цитата с Википедии):
год, номер которого кратен 400, — високосный;
остальные годы, номер которых кратен 100, — невисокосные;
остальные годы, номер которых кратен 4, — високосные.
1
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4573 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
06.01.2019, 14:39
TrollHammer, кроме того, нулевого года от р.Х. не было. Счёт начался с 1. Это так, к слову
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
06.01.2019, 14:40
Цитата Сообщение от valen10 Посмотреть сообщение
не каждый 4й год является високосным, там несколько сложнее (цитата с Википедии)
Вики не догма, а курс теоретической астрономии мне здесь объем сообщений не позволяет
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4573 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
06.01.2019, 14:42
TrollHammer, не догма, но так и есть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.01.2019, 14:42
Помогаю со студенческими работами здесь

Как определить количество дней между двумя датами, исключая выходные
Люди, подскажите как можно определить количество дней между двумя датами, исключая выходные? я пытаюсь как-то так: DateTime...

Как вывести списком диапазон дат и дней недели между двумя датами
Доброго времени суток, форумчане! Столкнулся с задачей, которую не получается пока решить, может кто делал подобное? Есть шаблон...

Вывести число дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней
Дан номер некоторого года (положительное целое число). Вывести число дней в этом году, учитывая, что обычный год насчитывает 365 дней, а...

Вывести число дней в заданном году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней
11 Дан номер некоторого года (положительное целое число). Вывести число дней в этом году, учитывая, что обычный год насчитывает 365 дней, а...

Определить и вывести количество дней между двумя датами (логические операторы и операторы ветвлений)
Задачка Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru