Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2013, 19:27   #1
Паман
Новичок
Джуниор
 
Регистрация: 28.12.2013
Сообщений: 1
По умолчанию Дата - проверить попадание даты, заданной строкой в интервал дат (на C/C++)

Здравствуйте, у меня возникла проблема, заключается она в дате. Подробнее: в программе у меня есть структура, в ней есть дата вида: 11.11.2011 . Ну, конечно, string и все дела, все нормально, но в задании мне нужно рассмотреть промежуток времени, вводимый с клавиатуры, т.е. я ввожу начальную дату: 11.11.2003 и конечную дату: 11.11.2012 (даты типa string). На этом промежутке мне нужно посмотреть, встречалась ли в это время дата из структуры, допустим: 11.12.2010 . И я понятия не имею, как это сделать
Особенность еще 1 в том, что данные вводятся из документа.
Мне говорили, что есть специальная команда или функция, но я таковой найти не могу(нашел только с временем: 12.00)
Подскажите, пожааааалуйста

Код в C++, который я сделал(все, что в комментариях, это то, что не получается):
Код:
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<conio.h>
#include <string>
#include <clocale>
#include <windows.h>
#include <iomanip>
#include <cstdio>
#include <stdio.h>
#include <fstream>
#define FNAME "nomer.txt"
#define N 500
using namespace std;
struct basa
{
    string nomer;
    int kod;
    string data;
    int min;
    int sum;
};
int main()
{
    setlocale(LC_ALL, "");
    //int nomer1 = 0, kod1 = 0, data1 = 0, min1 = 0, sum1 = 0, sh = 1, d, n, k, chet = 0;
    string n, k,d;
    basa s[N];
    ifstream F1(FNAME, ios::in);
    if (!F1) {
        cout << "Нельзя открыть файл " << FNAME;
        _getch();
        return 1;
    }
    else
    {
        int i = 0, f = 0;
        while (!F1.eof())
        {
            F1 >> s[i].nomer;
            F1 >> s[i].kod;
            F1 >> s[i].data;
            F1 >> s[i].min;
            F1 >> s[i].sum;
            i++; f++;
        }
        cout<<" -----------------------------------------------------------------------------------------------------------"<<endl;
        cout<<"|"<<"  "<<"Номер телефона"<<"  "<<"|"<<"  "<<"Код города"<<"  "<<"|"<<"   "<<"Дата разговора"<<"   "<<"|"<<"  "<<"Количество минут разговора"<<"  "<<"|"<<"   "<<"Сумма к оплате"<<"    "<<"|"<<"  "<<endl;
        cout<<" -----------------------------------------------------------------------------------------------------------"<<endl;
        for (int i = 0; i<f; i++) cout <<s[i].nomer<<setw(8)<<s[i].kod<<"          "<<s[i].data <<setw(20)<< s[i].min <<setw(27)<< s[i].sum << endl;
        cout << endl;
        cout << endl;
        cout << "Введите начальную дату: ";
        cin >> n;
        cout << "Введите конечную дату: ";
        cin >> k;
        cout << "Дата с " << n << " числа до " << k << endl;
       /* for (int i = 0; i<f; ++i)
        {
            for (int j = 1; j <= 32; ++j)
            {
                if (j == s[i].data)
                {
                    cout << endl << "В день " << j << " использовался номер из базы " << i + 1 << endl << "Номер телефона: " << s[i].nomer << endl << "Код города: " << s[i].kod << endl << "Дата разговора: " << s[i].data << endl << "Время разговора(в минутах): " << s[i].min << endl << "Сумма к оплате: " << s[i].sum << endl;
                }
                //else cout << "В базе " << i + 1 << " не обнаружена дата " << j << endl;
            }
        }*/
        cout << endl;
        cout << "Введите дату: ";
        cin >> d;
        /*if (d>31||d<1) 
        {
            cout <<"Не верно введена дата";
            _getch ();
            return 0;
        }
        else
        {*/
        cout << "День " << d << endl;
        for (int i = 0; i<f; ++i)
        {
            if (d == s[i].data)
            {
                cout << endl << "В этот день использовался номер из базы " << i + 1 << endl << "Номер телефона: " << s[i].nomer << endl << "Код города: " << s[i].kod << endl << "Дата разговора: " << s[i].data << endl << "Время разговора(в минутах): " << s[i].min << endl << "Сумма к оплате: " << s[i].sum << endl;
            }
            else cout << "В базе " << i + 1 << " нет похожей даты" << endl;
        }
    }
//  }
    F1.close();
    _getch();
    return 0;
}


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.


Ниже документ, из которого все вводится.
Вложения
Тип файла: txt nomer.txt (80 байт, 126 просмотров)

Последний раз редактировалось Serge_Bliznykov; 28.12.2013 в 22:03.
Паман вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
sh-скрипт на Linux поиск файлов с заданной строкой Npwas Помощь студентам 4 16.01.2016 20:34
Проверить входит ли текущая дата в диапазон дат? artemavd Общие вопросы Delphi 6 16.11.2012 21:32
Дата входящая в заданный интервал Валентинка) Microsoft Office Excel 8 07.04.2011 21:33
Вычитание дат(дата-дата=кол.дней) zallza Общие вопросы Delphi 1 31.05.2010 22:50
Интервал дат asas2010 Microsoft Office Excel 10 12.04.2010 12:12