Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Заблокирован

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

04.07.2015, 12:03. Показов 2790. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть база данных с днями рождения всех студентов группы и преподавателей. Сделанная через case. ПОльзователю предлагается ввести число от 1 до 31 (без месяца и года), после чего выводится список всех именинников, родившихся данного числа, с указанием месяца и года. Как сделать так, чтобы программа считывала системную дату, и при открытии программы сразу выводила у кого день рождения сегодня?
Например так:
Сегодня день рождения Валентина Козлова! //этой строчки в программе не хватает, подскажите, как сделать?
Для получения списка именинников, введите число от 1 до 31:
_
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.07.2015, 12:03
Ответы с готовыми решениями:

Как определить системную дату?
Как найти текущую системную дату на компе, а именно год и записать в переменную типа int?

Visual c++ как вернуть системную дату и время на русском языке ctime
Visual c++ как вернуть системную дату и время на русском языке ctime? #include <ctime> #include <iostream> //#include...

Узнать системную дату
Подскажите, как можно узнать системную дату... При этом, её нужно узнать отдельно день, отдельно месяц, отдельно год... Для дальнейшего...

16
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
04.07.2015, 12:17
http://www.cplusplus.com/reference/ctime/mktime/
0
Заблокирован
04.07.2015, 14:18  [ТС]
спасибо, а есть тоже самое на русском языке?

Добавлено через 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;
}
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
04.07.2015, 15:34
Выводит системную дату в файл в миллисекундах, не смотря на работу фунцкии localtime
0
Заблокирован
04.07.2015, 17:23  [ТС]
Чтобы оперировать какими-либо функциями\операторами\командами - их нужно знать. Вы даете ссылки на готовые коды, у меня могут уйти недели на их понимание. Можете подсказать более конкретно, если знаете
Цитата Сообщение от rep plz Посмотреть сообщение
time_t rawtime;
что это значит?
Цитата Сообщение от rep plz Посмотреть сообщение
struct tm * timeinfo;
что это значит?
Например, чтобы посчитать сумму a и b, мне сначала нужно объявить переменные, потом ввести их, затем произвести вычисления операндом +, и уаля! А как быть с временем? Нужно ли его объявлять как переменную? Как это делается?
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
04.07.2015, 18:52
Цитата Сообщение от rep plz Посмотреть сообщение
у меня могут уйти недели на их понимание
Скопипастить и поэкспериментировать - минут 10.
0
Заблокирован
04.07.2015, 19:14  [ТС]
я скопипастил с первой ссылки. хотел посмотреть какое значение выведет. вводил
cout << timeinfo << endl;
потом так
cout << localtime << endl;
потом так
cout << &rawtime << endl;
Ничего не выводит. Значит в памяти нет сохраненных значений. Тогда что делает код из первой ссылки? И как он мне может быть полезен?
0
Заблокирован
05.07.2015, 12:13  [ТС]
Подскажите код, который сравнивает системную дату со значением 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;
В меня и в алгоритм прошу какашками не кидаться, потому что программист я без году неделя. Вместо этого, подскажите, пожалуйста, как от день недели_месяц_число месяца_время_год в памяти программы оставить только число месяца? Чтобы выводил полную дату, как сейчас в коде. А далее я работал только с числом месяца? И второй вопрос, какую переменную нужно вводить, чтобы вывести одну или несколько текстовых строк?
Благодарен всем неравнодушным
0
7 / 7 / 3
Регистрация: 07.06.2015
Сообщений: 22
05.07.2015, 12:21
получить текущий месяц -
C++
1
value = timeinfo->tm_mday;
для строк используй
C++
1
2
#include <string>
string MyString;
1
Заблокирован
05.07.2015, 13:52  [ТС]
спасибо, пока все получается
0
 Аватар для _Valera_
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
05.07.2015, 14:05
Цитата Сообщение от rep plz Посмотреть сообщение
Добрые дяденьки программисты, подскажите новичку хоть малость мальную. На данный момент код такой
Код C++Выделить код

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

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

я просто учусь, но далеко не студент, учу С++ для себя.
0
Заблокирован
05.07.2015, 18:55  [ТС]
Цитата Сообщение от ppdisk Посмотреть сообщение
динственное вместо <time.h> надо использовать <CTime>
почему? и так все прекрасно работает
0
7 / 7 / 3
Регистрация: 07.06.2015
Сообщений: 22
05.07.2015, 19:01
C++
1
<time.h>
это из чистого С, в С++ надо по правильному
C++
1
<CTime>
На сколько я понимаю
0
Заблокирован
05.07.2015, 19:09  [ТС]
Цитата Сообщение от ppdisk Посмотреть сообщение
string MyString;
вот это вроде тоже из С. в С++ по-моему надо std::string как-то так. потому что как вы написали не работает
0
7 / 7 / 3
Регистрация: 07.06.2015
Сообщений: 22
05.07.2015, 19:13
ты уже в начале программы объявил
C++
1
using namespace std;
по этому пространство имён
C++
1
std::
можно теперь игнорировать. Возможно я где-то допустил опечатку, т.к. компилятора под рукой нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.07.2015, 19:13
Помогаю со студенческими работами здесь

Занести системную дату в переменные day, month, year
У меня есть три переменные: int day; int month; int year; и мне нужно &quot;запихнуть&quot; в них время с системных часов. Как мне это...

Выводит системную дату в файл в миллисекундах, не смотря на работу фунцкии localtime
Добрый день. В этой программе берётся системное время, сначала выводится на экран(всё нормально), а затем передаём это в файл. а в файле...

как изменить системную громкость ?
Что-то очень мало информации про это пробовал двумя способами: 1. waveOutSetVolume(0,MAKELONG(LOWORD(00000),LOWORD(00000))); 2....

Получить день и номер месяца и определить дату следующего дня (считать год невисокосным)
Напишите программу, которая получает день и номер месяца и определяет дату следующего дня. Считайте, что год невисокосный (365 дней). ...

Как считать определённое количество цифр заданного числа (считать число до заданной цифры)?
как считать число 12345 до символа 5? То есть 1234 присвоить другой переменной?.:wall:


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru