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

Вычислить сколько полных недель прошло между указанными датами

21.02.2017, 15:19. Просмотров 1944. Ответов 3
Метки нет (Все метки)


Заданы натуральные числа а1, b1, a2, b2, которые обозначают числа и номера месяцев не високосного года (год один и тот же). Вычислить сколько полных недель прошло межу указанными датами.

Напишите код на C++, пожалуйста!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2017, 15:19
Ответы с готовыми решениями:

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

Идет K-ая секунда суток. Определить, сколько полных часов и полных минут прошло к этому моменту.
помогите, не пойму как это подсчитать

Идет n-я секунда суток. Определить, сколько полных часов и полных минут прошло до этого момента.
Идет n-я секунда суток. Определить, сколько полных часов и полных минут прошло до этого момента.

Идёт k-тая секунда суток. Определить, сколько полных часов и полных минут прошло к этому моменту. C++
Идёт k-тая секунда суток. Определить, сколько полных часов и полных минут прошло к этому моменту....

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
3
34 / 34 / 37
Регистрация: 21.06.2012
Сообщений: 152
21.02.2017, 18:40 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main(int argc, const char * argv[]) {
    
    short unsigned int a1, b1, a2, b2;
    std::cin >> a1 >> b1 >> a2 >> b2;
    
    short unsigned int day_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    short unsigned int day_from_start_of_year = 0;
    
    for (short unsigned int i(0); i < a2*10+b2 - 1; ++i)
        day_from_start_of_year += day_in_month[i];
    day_from_start_of_year += a1*10+b1;
    
    std::cout << day_from_start_of_year / 7 << std::endl;
    
    return 0;
}
0
0 / 0 / 1
Регистрация: 21.02.2017
Сообщений: 4
21.02.2017, 21:12  [ТС] 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "stdafx.h"
#include "stdio.h"     //библиотека потока ввода-вывода  
#include "iostream"
#include <math.h>      //библиотека математических операций
#include "clocale"     //библиотека русификации консоли
#include "conio.h"
#include "Windows.h"
using namespace std;
 
int main(){
    setlocale(LC_ALL, "Rus"); 
    int a1, a2, b1, b2, countdays=0;
    int days[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    printf("Введите первое число и месяц:\n");
    scanf("%i%i", &a1, &a2);
    printf("Введите второе число и месяц:\n");
    scanf("%i%i", &b1, &b2);
    if (    a1 <= 0  ||
            a1 > 31 ||
            a2 <= 0  ||
            a2 > 12 ||
            b1 <= 0  ||
            b1 > 31 ||
            b2 <= 0  ||
            b2 > 12 ||
            a2 > b2){
                printf("\nНеправильно введенная дата!\n\n");}
        
    for(int i=a2; i<=b2;i++)
    {   int j=1;
            if(i==a2) j=a1; 
            for(j; j<=days[i-1]; j++ )
            {
                if(j==b1 && i==b2) break;
                else countdays++;
            }
    }
    printf("Прошло %i  недель\n", countdays/7);
    getch();
    return 0;
}
0
141 / 119 / 28
Регистрация: 12.02.2017
Сообщений: 308
22.02.2017, 09:41 4
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
#include<iostream>
#include<ctime>
 
using namespace std;
 
 
 
int main(int argc, char* argv[]) {
 setlocale(LC_ALL, "Russian");
 tm t1;
 tm t2;
 time_t ult;
 int a1, b1;
 int a2, b2;
 cout << "Введите число первого месяца: ";
 cin >> a1;
 cout << "Введите номер первого месяца: ";
 cin >> b1;
 cout << "Введите число второго месяца: ";
 cin >> a2;
 cout << "Введите номер второго месяца: ";
 cin >> b2;
 time(&ult);
 tm* tmp = localtime(&ult);
 t1 = *tmp;
 t1.tm_mday = a1;
 t1.tm_mon = b1-1;
 t2 = *tmp;
 t2.tm_mday = a2;
 t2.tm_mon = b2-1;
 int iWeeks = (mktime(&t2) - mktime(&t1)) / 604800;
 cout <<"Ответ: "<< iWeeks<<" недели(ь)." << endl;
 system("pause");
    }
Добавлено через 11 часов 16 минут
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
#include<iostream>
#include<ctime>
 
using namespace std;
 
 
 
int main() {
 setlocale(LC_ALL, "Russian");
 tm t1;
 tm t2;
 time_t ult;
 int a1, b1;
 int a2, b2;
 cout << "Введите число первой даты: ";
 cin >> a1;
 cout << "Введите месяц первой даты: ";
 cin >> b1;
 cout << "Введите число второй даты: ";
 cin >> a2;
 cout << "Введите месяц второй даты: ";
 cin >> b2;
 time(&ult);
 tm* tmp = localtime(&ult);
 t1 = *tmp;
 t1.tm_mday = a1;
 t1.tm_mon = b1 - 1;
 t1.tm_year = 117;
 t2 = *tmp;
 t2.tm_mday = a2;
 t2.tm_mon = b2 - 1;
 t2.tm_year = 117;
 int iWeeks = abs((mktime(&t2) - mktime(&t1)) / 604800);
 cout << "Ответ: разница между датами " << iWeeks << " полных недели(ь)." << endl;
 _getch();
 return 0;
    }
Добавлено через 4 минуты
Внес поправки.

Добавлено через 1 минуту
Внес поправки.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2017, 09:41

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

С начала пятого модуля прошло d дней; сколько полных недель прошло за этот период?
С начала пятого модуля прошло d дней. Сколько полных недель прошло за этот период? Определить,...

С некоторого момента прошло 234 дня. Сколько полных недель прошло за этот период.
С некоторого момента прошло 234 дня. Сколько полных недель прошло за этот период. Зарание...

Сначала суток прошло n секунд, определить: сколько полных часов прошло с начала суток, сколько полных минут прошло с начала текущего часа, сколько пол
помогите решить Сначала суток прошло n секунд, определить: сколько полных часов прошло с начала...

Определить количество полных недель и понедельников между заданными датами
Заданы две даты. Определить количество полных недель и понедельников между этими датами. ...


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

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

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