Форум программистов, компьютерный форум CyberForum.ru

Как считать системную дату? - C++

Восстановить пароль Регистрация
 
rep plz
Заблокирован
04.07.2015, 12:03     Как считать системную дату? #1
Есть база данных с днями рождения всех студентов группы и преподавателей. Сделанная через case. ПОльзователю предлагается ввести число от 1 до 31 (без месяца и года), после чего выводится список всех именинников, родившихся данного числа, с указанием месяца и года. Как сделать так, чтобы программа считывала системную дату, и при открытии программы сразу выводила у кого день рождения сегодня?
Например так:
Сегодня день рождения Валентина Козлова! //этой строчки в программе не хватает, подскажите, как сделать?
Для получения списка именинников, введите число от 1 до 31:
_
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
04.07.2015, 12:17     Как считать системную дату? #2
http://www.cplusplus.com/reference/ctime/mktime/
rep plz
Заблокирован
04.07.2015, 14:18  [ТС]     Как считать системную дату? #3
спасибо, а есть тоже самое на русском языке?

Добавлено через 34 минуты
Помогите разобраться. В английском не секу. Хотел проверить опытным путем, вставил в свой код строчки из вашей ссылки, добавил cout чтобы посмотреть какое значение хранится в timeinfo. Он ничего не выводит.
Поэтому у меня опять те же вопросы без ответов,
1) какой оператор считывает системную дату? Этот: timeinfo = localtime ( &rawtime ); ?
2) как сделать обращение времени к соответствующему case?
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
#include <iostream>
#include <time.h>
 
 
using namespace std;
 
int main()
{
   [B] time_t rawtime;
    struct tm * timeinfo;
[/B]
    int value;
    setlocale(LC_ALL, "Russian");
    cout << "Здравствуйте, Владимир Анатольевич" << endl;
 
    cout << "Введите дату (0-31) :" << endl;
    cin >> value;
 
    switch (value)
    {
        case 0:
            cout << "Ничего не найдено по запросу" << endl;
            break;
 
        case 1:
            cout << "1.04.1927 year - den rozhdeniya ________________" << endl;
            break;
 
        case 2:
            cout << "2.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 3:
            cout << "3.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 4:
            cout << "4.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 5:
            cout << "5.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 6:
            cout << "6.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 7:
            cout << "7.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 8:
            cout << "8.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 9:
            cout << "9.05.1945 year - Victory days!" << endl;
            break;
 
        case 10:
            cout << "10.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 11:
            cout << "11.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 12:
            cout << "12.07.1952 year - den rozhdeniya _________________" << endl;
            break;
 
        case 13:
            cout << "13.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 14:
            cout << "14.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 15:
            cout << "15.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 16:
            cout << "16.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 17:
            cout << "17.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 18:
            cout << "18.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 19:
            cout << "19.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 20:
            cout << "20.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 21:
            cout << "21.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 22:
            cout << "22.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 23:
            cout << "23.03.1981 year - den rozhdeniya ______________" << endl;
            cout << "23.09.1927 year - den rozhdeniya ______________" << endl;
            break;
 
        case 24:
            cout << "24.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 25:
            cout << "25.__.____ year - den rozhdeniya __________________" << endl;
            break;
 
        case 26:
            cout << "26.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 27:
            cout << "27.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 28:
            cout << "28.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 29:
            cout << "29.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 30:
            cout << "30.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 31:
            cout << "31.12.1950 year - den rozhdeniya _________________" << endl;
            break;
 
        default:
            cout << "Not found number!" << endl;
            break;
 
    [B]time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    mktime ( timeinfo );
    cout << timeinfo << endl;[/B]
 
 
    }
    return 0;
}
IrineK
Заблокирован
04.07.2015, 15:34     Как считать системную дату? #4
Выводит системную дату в файл в миллисекундах, не смотря на работу фунцкии localtime
rep plz
Заблокирован
04.07.2015, 17:23  [ТС]     Как считать системную дату? #5
Чтобы оперировать какими-либо функциями\операторами\командами - их нужно знать. Вы даете ссылки на готовые коды, у меня могут уйти недели на их понимание. Можете подсказать более конкретно, если знаете
Цитата Сообщение от rep plz Посмотреть сообщение
time_t rawtime;
что это значит?
Цитата Сообщение от rep plz Посмотреть сообщение
struct tm * timeinfo;
что это значит?
Например, чтобы посчитать сумму a и b, мне сначала нужно объявить переменные, потом ввести их, затем произвести вычисления операндом +, и уаля! А как быть с временем? Нужно ли его объявлять как переменную? Как это делается?
IrineK
Заблокирован
04.07.2015, 18:52     Как считать системную дату? #6
Цитата Сообщение от rep plz Посмотреть сообщение
у меня могут уйти недели на их понимание
Скопипастить и поэкспериментировать - минут 10.
rep plz
Заблокирован
04.07.2015, 19:14  [ТС]     Как считать системную дату? #7
я скопипастил с первой ссылки. хотел посмотреть какое значение выведет. вводил
cout << timeinfo << endl;
потом так
cout << localtime << endl;
потом так
cout << &rawtime << endl;
Ничего не выводит. Значит в памяти нет сохраненных значений. Тогда что делает код из первой ссылки? И как он мне может быть полезен?
rep plz
Заблокирован
05.07.2015, 12:13  [ТС]     Как считать системную дату? #8
Подскажите код, который сравнивает системную дату со значением case и автоматически выводит его значение!
Например,
C++
1
2
3
case 30:
            cout << "30.__.____ year - den rozhdeniya В.В." << endl;
            break;
если сегодня 30-е число, то программа выводит что 30 числа день рождение В.В.

Добавлено через 16 часов 13 минут
Добрые дяденьки программисты, подскажите новичку хоть малость мальную. На данный момент код такой
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
#include <iostream>
#include <time.h>
 
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    time_t rawtime;
    struct tm * timeinfo;
 
    time (&rawtime);
    timeinfo = localtime (&rawtime);
    cout << "Текущая дата: " << asctime(timeinfo);
 
    int value;
 
    cout << "Здравствуйте, Владимир Анатольевич" << endl;
    cout << "Введите дату (1-31) :" << endl;
    cin >> value;
 
    switch (value)
    {
        case 0:
            cout << "Ничего не найдено по запросу" << endl;
            break;
 
        case 1:
            cout << "1.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 2:
            cout << "2.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 3:
            cout << "3.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 4:
            cout << "4.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 5:
            cout << "5.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 6:
            cout << "6.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 7:
            cout << "7.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 8:
            cout << "8.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 9:
            cout << "9.05.1945 year - Victory days!" << endl;
            break;
 
        case 10:
            cout << "10.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 11:
            cout << "11.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 12:
            cout << "12.07.1952 year - den rozhdeniya _________________" << endl;
            break;
 
        case 13:
            cout << "13.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 14:
            cout << "14.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 15:
            cout << "15.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 16:
            cout << "16.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 17:
            cout << "17.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 18:
            cout << "18.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 19:
            cout << "19.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 20:
            cout << "20.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 21:
            cout << "21.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 22:
            cout << "22.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 23:
            cout << "23.03.1981 year - den rozhdeniya ______________" << endl;
            cout << "23.09.1927 year - den rozhdeniya ______________" << endl;
            break;
 
        case 24:
            cout << "24.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 25:
            cout << "25.06.2006 year - den rozhdeniya Sobolevoi Evi" << endl;
            break;
 
        case 26:
            cout << "26.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 27:
            cout << "27.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 28:
            cout << "28.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 29:
            cout << "29.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 30:
            cout << "30.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 31:
            cout << "31.12.1950 year - den rozhdeniya _________________" << endl;
            break;
 
        default:
            cout << "Not found number!" << endl;
            break;
 
 
    }
    return 0;
}
Программа выводит системную дату и время в формате день недели_месяц_число месяца_время_год
Алгоритм вижу так: оставить от день недели_месяц_число месяца_время_год только число месяца. Сверять его с case через цикл for до тех пор, пока значения число месяца и case не будут равны, как только будут равны, программа выводит значение этого case и сразу break;
В меня и в алгоритм прошу какашками не кидаться, потому что программист я без году неделя. Вместо этого, подскажите, пожалуйста, как от день недели_месяц_число месяца_время_год в памяти программы оставить только число месяца? Чтобы выводил полную дату, как сейчас в коде. А далее я работал только с числом месяца? И второй вопрос, какую переменную нужно вводить, чтобы вывести одну или несколько текстовых строк?
Благодарен всем неравнодушным
ppdisk
7 / 7 / 2
Регистрация: 07.06.2015
Сообщений: 22
05.07.2015, 12:21     Как считать системную дату? #9
получить текущий месяц -
C++
1
value = timeinfo->tm_mday;
для строк используй
C++
1
2
#include <string>
string MyString;
rep plz
Заблокирован
05.07.2015, 13:52  [ТС]     Как считать системную дату? #10
спасибо, пока все получается
_Valera_
 Аватар для _Valera_
486 / 368 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
05.07.2015, 14:05     Как считать системную дату? #11
Цитата Сообщение от rep plz Посмотреть сообщение
Добрые дяденьки программисты, подскажите новичку хоть малость мальную. На данный момент код такой
Код C++Выделить код

#include <iostream>
#include <time.h>
...
}

Спрячь и никому не показывай. И благодари создателей календаря, что у нас не 1000 дней в месяце.
rep plz
Заблокирован
05.07.2015, 18:34  [ТС]     Как считать системную дату? #12
_Valera_,
Цитата Сообщение от _Valera_ Посмотреть сообщение
Спрячь и никому не показывай. И благодари создателей календаря, что у нас не 1000 дней в месяце.
как говорится чем богаты тем и рады или как в песне "я его слепила из того что было.." я кстати и время обозначил value1 и тоже через switch на 30 чисел сделал)))) просто мне сейчас важен результат. над компактностью поработаю когда время свободное появится. но вы, если хотите, можете подсказать как урезать, используя только if, else, switch, while, for, do while
будем пополнять знания, будут и программы по компактней.
А вообще, я все сделал, так что спасибо всем кто откликнулся судя по всему это только ppdisk, хД
ppdisk
7 / 7 / 2
Регистрация: 07.06.2015
Сообщений: 22
05.07.2015, 18:45     Как считать системную дату? #13
_Valera_,
а чем не устраивает данная конструкция?
C++
1
2
#include <iostream>
#include <time.h>
Единственное вместо <time.h> надо использовать <CTime>
или что те ещё?

я просто учусь, но далеко не студент, учу С++ для себя.
rep plz
Заблокирован
05.07.2015, 18:55  [ТС]     Как считать системную дату? #14
Цитата Сообщение от ppdisk Посмотреть сообщение
динственное вместо <time.h> надо использовать <CTime>
почему? и так все прекрасно работает
ppdisk
7 / 7 / 2
Регистрация: 07.06.2015
Сообщений: 22
05.07.2015, 19:01     Как считать системную дату? #15
C++
1
<time.h>
это из чистого С, в С++ надо по правильному
C++
1
<CTime>
На сколько я понимаю
rep plz
Заблокирован
05.07.2015, 19:09  [ТС]     Как считать системную дату? #16
Цитата Сообщение от ppdisk Посмотреть сообщение
string MyString;
вот это вроде тоже из С. в С++ по-моему надо std::string как-то так. потому что как вы написали не работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2015, 19:13     Как считать системную дату?
Еще ссылки по теме:

Написать программу, которая предлагает пользователю ввести дату в формате YYYY MM DD и выводит в консоль, следующую за ней дату C++
C++ Написать программу, которая предлагает пользователю ввести дату в формате YYYY MM DD и выводит в консоль, следующую за ней дату
Перемещение программы при запуске в системную директорию C++

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

Или воспользуйтесь поиском по форуму:
ppdisk
7 / 7 / 2
Регистрация: 07.06.2015
Сообщений: 22
05.07.2015, 19:13     Как считать системную дату? #17
ты уже в начале программы объявил
C++
1
using namespace std;
по этому пространство имён
C++
1
std::
можно теперь игнорировать. Возможно я где-то допустил опечатку, т.к. компилятора под рукой нет.
Yandex
Объявления
05.07.2015, 19:13     Как считать системную дату?
Ответ Создать тему
Опции темы

Текущее время: 11:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru