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

Преобразование секунд в года - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать подстановку кода с помощью препроцессора http://www.cyberforum.ru/cpp-beginners/thread1801830.html
Есть множество классов: class SomeClassName1 { ... } class SomeClassName2 { ... } ...
C++ Typedef для функций Здравствуйте! В книге Страуструпа в качестве примера приводится typedef для указателей на функции например: typedef void(*SIG_TYP) (int) , typedef int (*CFT)(const void*, const void*) Не совсем... http://www.cyberforum.ru/cpp-beginners/thread1801818.html
Что не так с этими указателями? C++
Всем привет, прошу помощи разобраться в коде. Недавно начал изучать C++ по книге Лафоре. В главе с указателями есть пример со связными списками. Вот его структура: struct node { int data;...
C++ Прервать цикл из цикла, вложенного в него
Приветствуют. Собственно, вопрос в названии темы. for(int i = 1; i <= 10; i++) for(int j = 1; j <= 5; j++) { if(/* здесь условие выхода из обоих циклов */) { /* как выйти сразу из 2-х...
C++ Тест. Подскажите где ошибка http://www.cyberforum.ru/cpp-beginners/thread1801758.html
1 ответ не правильный. Подскажите где ошибка.
C++ Typedef thiscall метода с переменным числом аргументов Добрый день. Хочу что то типа такого typedef void *(__thiscall *tThisCall)(void *, ...); tThisCall method; //... method(object, arg1, arg2); подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
02.09.2016, 23:01
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#include <iostream>
///////////////////////////////////////////////////////////////////////////////
typedef unsigned long long  T_uint;
///////////////////////////////////////////////////////////////////////////////
const   T_uint  SEC_PER_MIN         =   60;
const   T_uint  MIN_PER_HOUR        =   SEC_PER_MIN;
const   T_uint  HOURS_PER_DAY       =   24;
const   T_uint  DAYS_PER_MONTH      =   31;
const   T_uint  MONTHS_PER_YEAR     =   12;
///////////////////////////////////////////////////////////////////////////////
T_uint  rand_val()
{
    return  rand()  %   10;
}
///////////////////////////////////////////////////////////////////////////////
void    print_values
    (
        T_uint  years,
        T_uint  months,
        T_uint  days,
 
        T_uint  hours,
        T_uint  minutes,
        T_uint  seconds
    )
{
    std::cout   <<  years       <<  '\t'    <<  "years"     <<  std::endl
                <<  months      <<  '\t'    <<  "months"    <<  std::endl
                <<  days        <<  '\t'    <<  "days"      <<  std::endl
 
                <<  hours       <<  '\t'    <<  "hours"     <<  std::endl
                <<  minutes     <<  '\t'    <<  "minutes"   <<  std::endl
                <<  seconds     <<  '\t'    <<  "seconds"   <<  std::endl
                                                            <<  std::endl;
}
///////////////////////////////////////////////////////////////////////////////
T_uint  set_quotient_and_get_remainder
    (
        T_uint      dividend,
        T_uint      divisor,
        T_uint  &   quotient
    )
{
    quotient    =   dividend    /   divisor;
    return          dividend    %   divisor;
}
///////////////////////////////////////////////////////////////////////////////
void        for_seconds_set_values
    (
        T_uint      seconds,
 
        T_uint  &   years,
        T_uint  &   months,
        T_uint  &   days,
 
        T_uint  &   hours,
        T_uint  &   minutes,
        T_uint  &   seconds_res
    )
{
    seconds_res     =   set_quotient_and_get_remainder
                            (
                                seconds,
                                SEC_PER_MIN,
                                minutes
                            );
 
    minutes         =   set_quotient_and_get_remainder
                            (
                                minutes,
                                MIN_PER_HOUR,
                                hours
                            );
 
    hours           =   set_quotient_and_get_remainder
                            (
                                hours,
                                HOURS_PER_DAY,
                                days
                            );
 
    days           =   set_quotient_and_get_remainder
                            (
                                days,
                                DAYS_PER_MONTH,
                                months
                            );
 
    months         =   set_quotient_and_get_remainder
                            (
                                months,
                                MONTHS_PER_YEAR,
                                years
                            );
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        T_uint  years       =   rand_val();
        T_uint  months      =   rand_val();
        T_uint  days        =   rand_val();
 
        T_uint  hours       =   rand_val();
        T_uint  minutes     =   rand_val();
        T_uint  seconds     =   rand_val();
 
        print_values
            (
                years,
                months,
                days,
 
                hours,
                minutes,
                seconds
            );
 
        months      +=  years       *   MONTHS_PER_YEAR;
        days        +=  months      *   DAYS_PER_MONTH;
        hours       +=  days        *   HOURS_PER_DAY;
 
        minutes     +=  hours       *   MIN_PER_HOUR;
        seconds     +=  minutes     *   SEC_PER_MIN;
 
        std::cout   <<  "total seconds: "
                    <<  seconds
                    <<  std::endl
                    <<  std::endl;
 
        years       =   0;
        months      =   0;
        days        =   0;
 
        hours       =   0;
        minutes     =   0;
 
        T_uint  remainder_seconds{};
 
        for_seconds_set_values
            (
                seconds,
                years,
                months,
 
                days,
                hours,
                minutes,
 
                remainder_seconds
            );
 
        print_values
            (
                years,
                months,
                days,
 
                hours,
                minutes,
                remainder_seconds
            );
 
        system("pause");
    }//for
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru