Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 13
1

Вычислить количество дней и количество полных лет между двумя датами

28.05.2015, 22:27. Просмотров 3667. Ответов 2
Метки нет (Все метки)


Ввести натуральные числа а(1), b(1), c(1), a(2), b(2), c(2), которые указывают две даты (число, месяц, год). Вычислить:
а) количество дней, прошедших между двумя этими датами;
б) количество полных лет, прошедших между двумя этими датами.
Заранее благодарю за помощь.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2015, 22:27
Ответы с готовыми решениями:

Вычислить количество дней, полных месяцев, и полных лет, прошедших между датами
Даны натуральные числа a1, b1 , c1 (число, месяц, год) a2, b2, ...

Найти количество полных лет, прошедших между двумя датами
Даны две даты (число, месяц, год). Найти количество полных лет, прошедших между этими двумя датами.

Вычислить количество дней между двумя датами
Даны натуральные числа a1, b1, c1, a2, b2, c2, которые указывают две даты (число, месяц, год)....

Количество лет, месяцев, дней между датами
Здравствуйте. Может подскажите как вывести количество лет месяцев дней между двумя датами? спасибо...

2
195 / 195 / 120
Регистрация: 27.05.2011
Сообщений: 545
27.08.2015, 12:08 2
Лучший ответ Сообщение было отмечено st0rmpwnz как решение

Решение

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
#include <algorithm>
#include <ctime>
#include <iostream>
 
int main() {
    using namespace std;
    tm first, second;
    cout << "Введите две даты в формате 'ДД ММ ГГГГ':" << endl;
    cin >> first.tm_mday >> first.tm_mon >> first.tm_year;
    cin >> second.tm_mday >> second.tm_mon >> second.tm_year;
 
    // Корректировка и заполнение
    first.tm_mon--, second.tm_mon--;
    first.tm_year -= 1900, second.tm_year -= 1900;
    first.tm_hour = first.tm_min = first.tm_sec = 0;
    second.tm_hour = second.tm_min = second.tm_sec = 0;
 
    int difference = difftime(mktime(&second), mktime(&first));
    if (difference < 0) {
        difference *= -1;
        swap(first, second);
    }
    cout << "Между датами дней: " << difference / (60*60*24) << endl;
    difference = second.tm_year - first.tm_year;
    if (second.tm_mon <= first.tm_mon and second.tm_mday < first.tm_mday) {
        difference--;
    }
    cout << "Полных лет: " << difference << endl;
}
Единственное, что меня смущает, это то, что в сутках не всегда 24 часа.
1
836 / 494 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
27.08.2015, 13:22 3
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
#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>
 
namespace dt = boost::gregorian;
 
void enter_date (int & year, int & month, int & day)
{
    std::cout << "Day: "; std::cin >> day;
    std::cout << "Month: "; std::cin >> month;
    std::cout << "Year: "; std::cin >> year;
}
 
int main (int argc, char *argv[])
{
    int y1, m1, d1;
    int y2, m2, d2;
    enter_date (y1, m1, d1);
    enter_date (y2, m2, d2);
    dt::date date1 (y1, m1, d1);
    dt::date date2 (y2, m2, d2);
    std::cout << "Days: " << (date2 - date1).days() << "\n"
              << "Year: " << date2.year() - date1.year() << "\n";
    return 0;
}
Добавлено через 15 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <Poco/DateTime.h>
 
void enter_date (int & year, int & month, int & day)
{
    std::cout << "Day: "; std::cin >> day;
    std::cout << "Month: "; std::cin >> month;
    std::cout << "Year: "; std::cin >> year;
}
 
int main (int argc, char *argv[])
{
    int y1, m1, d1;
    int y2, m2, d2;
    enter_date (y1, m1, d1);
    enter_date (y2, m2, d2);
    Poco::DateTime date1 (y1, m1, d1);
    Poco::DateTime date2 (y2, m2, d2);
    std::cout << "Days: " << (date2 - date1).days() << '\n'
              << "Years: " << date2.year() - date1.year() << '\n';
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.08.2015, 13:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Количество дней между двумя датами
Здравствуйте, у меня есть неполный код от задачи: Найти количество дней между двумя датами. можете...

Количество дней между двумя датами
Хочу спросить кто знает как найти количество дней между двумя датами. ПРИМЕР input ...

Высчитать количество дней между двумя датами
Короче,много тем на форуме по этому поводу,но нету ниодной правильной,которая мне нужна. Суть...

Посчитать количество дней между двумя датами
читал на форуме похожие темы, даже нашел целый код, но он мне кажется мудреным, да и использовать...


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

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

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