1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 169
1

Дана дата в формате день:месяц:год. Определить дату через n дней

18.04.2017, 09:17. Показов 8475. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана дата в формате день:месяц:год. Определить дату через n дней. Помогите написать программу, желательно полный код.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2017, 09:17
Ответы с готовыми решениями:

Дана дата в формате день:месяц:год. Определить день недели
Задание: Дана дата в формате день:месяц:год. Определить день недели.

Дата в формате <день>.<месяц>.<год>
а дальше нужно будет определить, например, сколько дней прошло с начала года и т.п. Подскажите,...

Создайте класс «Дата» со свойствами год, високосный год, месяц, день месяца и день недели
Создайте класс «Дата» со свойствами год, високосный год, месяц, день месяца и день недели. ...

По дате d,m,y определить дату следующего дня d1,m1,y1( d-день , m-месяц, y-год). Использовать оператор switch
По дате d,m,y определить дату следующего дня d1,m1,y1( d-день , m-месяц, y-год). Использовать...

5
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
18.04.2017, 17:28 2
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
#include <iostream>
 
bool IsLeapYear(int y)
{
    return (y%4 == 0 && y%100 != 0) || (y%400 == 0);
}
 
int DaysInMonth(int month, int year)
{
    static const int daysInMonth[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
 
    if (month == 2 && IsLeapYear(year))
        return 29;
 
    return daysInMonth[month-1];
}
 
void AdvanceDate(int nDays, int &d, int &m, int &y)
{
    int dm = DaysInMonth(m, y);
 
    if (dm-d >= nDays) {
        d += nDays;
        return;
    }
    else {
        nDays -= (dm-d+1);
        d = 1;
        ++m;
    }
 
    while (true)
    {
        int dm = DaysInMonth(m, y);
 
        if (dm-d >= nDays) {
            d += nDays;
            break;
        }
        else
            nDays -= (dm - d + 1);
 
        if (++m > 12) {
            m = 1;
            ++y;
        }
    }
}
 
int main()
{
    int day = 18, month = 4, year = 2017;
    int nDays = 4*365;
 
    AdvanceDate(nDays, day, month, year);
 
    std::cout << day << " " << month << " " << year << "\n";
}
Ввод начальной даты сделайте сами.
0
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 169
18.04.2017, 21:07  [ТС] 3
сделайте пожалуйста ввод начальной даты.
0
0 / 0 / 1
Регистрация: 20.04.2017
Сообщений: 7
08.05.2017, 15:55 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void main()
{
    int Day = 0;
    cout << "Day: ";
    cin >> Day;
    cout << "Month: ";
    int Month = 0;
    cin >> Month;
    cout << "Year: ";
    int Year = 0;
    cin >> Year;
    cout << "Enter N: ";
    int N_Days = 0;
    cin >> N_Days;
    
    AdvanceDate(N_Days, Day, Month, Year);
 
    cout << "After " << N_Days << " days date will be:" << Day << " " << Month << " " << Year << "\n";
    
    system("pause");
}
0
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 169
20.05.2017, 14:34  [ТС] 5
Цитата Сообщение от Liza_N Посмотреть сообщение
AdvanceDate(N_Days, Day, Month, Year);
как обьявить его? показывает,не определен?
0
0 / 0 / 1
Регистрация: 20.04.2017
Сообщений: 7
29.05.2017, 22:28 6
Вот полный код
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include<iostream>
 
using namespace std;
 
struct DATE
{
    int Day;
    int Month;
    int Year;
};
 
int CheckIsLeapYear(int y)//Checks that year is a leap or not
{
    if (y % 400 == 0) return 1;
    if (y % 100 == 0) return 0;
    if (y % 4 == 0) return 1;
    return 0;
}
int DaysInMonth(int month, int year)//Checks how many days in the month
{
    static const int NumberOfDays[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
 
    if (month == 2 && CheckIsLeapYear(year))
        return 29;
 
    return NumberOfDays[month - 1];
}
void AdvanceDate(int N_Days, int &day, int &m, int &y)//Calculates the date after a few days
{
    int dayofmonth = DaysInMonth(m, y);
 
    if (dayofmonth - day >= N_Days) {
        day += N_Days;
        return;
    }
    else {
        N_Days -= (dayofmonth - day + 1);
        day = 1;
        ++m;
    }
    while (true)
    {
        int dayofmonth = DaysInMonth(m, y);
 
        if (dayofmonth - day >= N_Days) {
            day += N_Days;
            break;
        }
        else
            N_Days -= (dayofmonth - day + 1);
 
        if (++m > 12) {
            m = 1;
            ++y;
        }
    }
}
void main()
{
    DATE DMY;
    int Day = 0;
    cout << "Day: ";
    cin >> DMY.Day;
    cout << "Month: ";
    int Month = 0;
    cin >> DMY.Month;
    cout << "Year: ";
    int Year = 0;
    cin >> DMY.Year;
    cout << "*** ANALYZING ENTERED THE DATE, SET THE DATE ON N DAYS AHEAD ***" << "\n";
    //Enter count of days
    cout << "Enter N_Days: ";
    int N_Days = 0;
    cin >> N_Days;
    //Calculates the date wich will be after entered count of dats
    AdvanceDate(N_Days, DMY.Day, DMY.Month, DMY.Year);
    cout << "After " << N_Days << " days date will be:" << DMY.Day << " " << DMY.Month << " " << DMY.Year << "\n\n";
 
    system("pause");
}
Миниатюры
Дана дата в формате день:месяц:год. Определить дату через n дней  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2017, 22:28
Помогаю со студенческими работами здесь

Дана строка, содержащая дату в виде «dd.mm.yyyy». Определить дату через n дней
Что исправить нужно? #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; struct date {...

Дата, год, месяц, день
/* Дата год, месяц, день от 01.01.0001 до 31.12.2999 Date Високосными являются года кратные...

Описать структуру «дата» (год, месяц, день
Описать структуру «дата» (год, месяц, день). Определить функцию «дней до конца года» вычисляющую...

Создайте структуру Дата с элементами День, Месяц, Год.
Народ, не могу понять структуры и учитель ничего не объясняет, помогите с кодом. Создайте...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru