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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
GraBLYA
-46 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
#1

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

17.01.2014, 14:52. Просмотров 213. Ответов 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);
}
Заранее премного благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 14:52     Организация БД по дате
Посмотрите здесь:

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

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

Сортировка структур по дате - C++
Дан массив записей, содержащих дату (число, месяц год) и время (часы минуты секунды) упорядочить массив в порядке возрастания!

Номер недели по дате - C++
Всем добрый день. Я только начинаю изучать c++ и передо мной стоит задача: Определить номер недели с начала года по введенной дате,...

Не работает сортировка по дате - C++
#include&lt;iostream&gt; #include&lt;locale&gt; #include&lt;cstring&gt; #include&lt;string.h&gt; using namespace std; class TMova{ public: char...

День недели по дате - C++
Здравствуйте. Проблем в написании программы у меня не возникает, проблема в расчетах. К примеру, нам известен день недели сегодня, от...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
17.01.2014, 17:03     Организация БД по дате #2
Прошу пару советов зеленому: как организовать работу с датами
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 или подобными
GraBLYA
-46 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
17.01.2014, 19:25  [ТС]     Организация БД по дате #3
Цитата Сообщение от egor2116 Посмотреть сообщение
size_t
Что за тип?
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
17.01.2014, 19:34     Организация БД по дате #4
Что за тип?
без знаковый целочисленный
GraBLYA
-46 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
18.01.2014, 02:14  [ТС]     Организация БД по дате #5
Цитата Сообщение от egor2116 Посмотреть сообщение
без знаковый целочисленный
А чем он отличается от 'unsigned'?
gunslinger
случайный прохожий
1132 / 750 / 191
Регистрация: 20.07.2013
Сообщений: 2,067
18.01.2014, 03:19     Организация БД по дате #6
Ничем (то же самое): к примеру, "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.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2014, 17:23     Организация БД по дате
Еще ссылки по теме:

Сортировка по имени и по дате - C++
Подскажите пожалуйста как реализовать сортировку по имени и по дате для вот такого класса. #include &lt;iostream&gt; using namespace std; ...

Организация наследования - C++
Здраствуйте! У меня есть несколько классов: class Base { public: int baseGet() { return i; } void...

Организация памяти. - C++
Здравствуйте. Объясните, пожалуйста, вот что: Допустим есть класс, с определенным количеством полей и определенным набором методов. При...

Организация программы - C++
Здравствуйте уважаемые программисты! Есть такая задача: Используйте одномерный массив для решения задачи. Компания платит своим...


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

Или воспользуйтесь поиском по форуму:
GraBLYA
-46 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
18.01.2014, 17:23  [ТС]     Организация БД по дате #7
Цитата Сообщение от gunslinger Посмотреть сообщение
Ничем (то же самое): к примеру, "in Borland’s implementation of the ANSI C standard, the type size_t is unsigned".

Если базовый тип переменной после unsigned пропущен, то автоматически добавляется (подразумевается) int.
Спасибо за развернутый ответ.
Yandex
Объявления
18.01.2014, 17:23     Организация БД по дате
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru