Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62

Организация БД по дате

17.01.2014, 14:52. Показов 789. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Тема далеко не новая и некоторые наводки на решения я находил уже на форуме, но лишь наводки.
Суть такая:
При вводе данных в БД в графе "Дата внесения: " нужно записать дату (не важно чего именно), в формате YYYY.MM.DD . Я сначала хотел использовать алгорит зашивфорвки в int число даты, но при надобности поиска по дате или поиска в интервале, то привычные циклы for и while придется уродовать огромнейшим кол-вом условий что бы с даты 2013.01.01 (int 20130101) пройти до 2014.01.01 (int 20140101 ) нужно было не 10000 шагов, а всего 365.

Прошу пару советов зеленому: как организовать работу с датами, что бы потом можно после записи в файл достать её, проводить поиск в интервале и т.д?

Простенький алгоритм зашифровки и расшифровки ввода YYYY.MM.DD в int число YYYYMMDD и расшифровка на 3 отдельных:YYYY MM DD, может кому пригодится.
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
#include <iostream>
#include <iomanip>
using namespace ::std;
int main ()
{   
    int year;
    int month;
    int day;
    int date=0;
    bool ch_date = false;
    do{
    cout<<"Enter date: ";
    cin>>setw(4)>>year; //ãîä
    cin.ignore();    //òî÷êà
    cin>>setw(2)>>month; //ìåñÿö
    cin.ignore();    //òî÷êà
    cin>>setw(2)>>day; //äàòà
    if (year> 0 && month> 0 && month<= 12 && day > 0 && day <= 31)
    {
    cout<<"\n\n"<<year<<'\t'<<month<<'\t'<<day;
    ch_date = true;
    date+=day;
    date+=month*100;
    date+=year*10000;
    cout<<'\n'<<date<<'\n'; 
    year = date/10000;
    cout<<year<<' ';
    month = (date - year*10000)/100; 
    cout<<month<<' ';
    day = date - (year*10000 + month*100);
    cout<<day<<' ';
    }
    else 
    {
    cout<<"\nError #2 Probably, you did a mistake in date. Try again!\n";
    ch_date = false;
    }
    }
    while (ch_date != true);
    cout<<'\n';
    return (0);
}
Заранее премного благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.01.2014, 14:52
Ответы с готовыми решениями:

По дате 23.04.2039 или другой дате XXI века определить день недели
&quot;Вечный календарь&quot;. По дате 23.04.2039 или другой дате XXI века оп-ределить день недели. Напечатать календарь на текущий месяц.

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

Отфильтровать из всех новостей 3 ближайших по дате к заданной дате
Не могу дотумкать, как отфильтровать из всех новостей 3 ближайших по дате к заданной дате. То есть, если у меня есть новости за 02.01,...

6
 Аватар для egor2116
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
17.01.2014, 17:03
Прошу пару советов зеленому: как организовать работу с датами
C++
1
2
3
4
5
6
struct Date
{
    int year;
    int month;
    int day;
}
для хранения
C++
1
std::vector< Date > vecDate;
чтение/запись
Читайте и пишите всю структуру целиком
C++
1
2
for(size_t i = 0; i < vecDate.size(); ++i)
           out.write((char*)vecDate[i], sizeof(vecDate) / vecDate.size());
поиск
C++
1
2
3
4
5
6
Date findDate; // с какими то значениями
for(size_t i = 0; i < vecDate.size(); ++i)
{
  if(vecDate[i].year == d.year && vecDate[i].month == d.month && vecDate[i].day == d.day)
}
или воспользуйтесь алгоритмом std::find или подобными
1
1 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
17.01.2014, 19:25  [ТС]
Цитата Сообщение от egor2116 Посмотреть сообщение
size_t
Что за тип?
0
 Аватар для egor2116
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
17.01.2014, 19:34
Что за тип?
без знаковый целочисленный
0
1 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
18.01.2014, 02:14  [ТС]
Цитата Сообщение от egor2116 Посмотреть сообщение
без знаковый целочисленный
А чем он отличается от 'unsigned'?
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
18.01.2014, 03:19
Ничем (то же самое): к примеру, "in Borland’s implementation of the ANSI C standard, the type size_t is unsigned".
When the base type is omitted from a declaration, int is assumed.
Если базовый тип переменной после unsigned пропущен, то автоматически добавляется (подразумевается) int.
1
1 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
18.01.2014, 17:23  [ТС]
Цитата Сообщение от gunslinger Посмотреть сообщение
Ничем (то же самое): к примеру, "in Borland’s implementation of the ANSI C standard, the type size_t is unsigned".

Если базовый тип переменной после unsigned пропущен, то автоматически добавляется (подразумевается) int.
Спасибо за развернутый ответ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.01.2014, 17:23

Опредилить день недели, соответствующий заданной дате дате
вам дона некоторая дата 21 века,опредилите день недели, соответствующий этой дате.Учтите чот первое января 2010 года это пятница....

Определить возраст пользователя по дате рождения и текущей дате
Составить программу, которая запрашивает у пользователя год его рождения и текущий год и выводит возраст пользователя. Пример работы...

Организация функций , Обработка одномерных массивов , Организация процедур.
Помогите пожалуйста кто чем может до экзамена 3-4 дня осталось а без программирования не пускают к сессии Организация процедур. ...

Сортировка ADOTable по дате. Выборка из таблицы по дате
Доброго вечера! Пытался решить проблему сам - не получилось. Тезисно: имеется программа, сделанная в c++ Builder; из бд Accsess в программе...

ссылка на ячейку по вводимой дате (текущей дате)
привет! Есть два столбца: дата , сумма как сделать автоматический расчёт сумма + любое другое значение в зависимости от текущей даты ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru