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

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

Войти
Регистрация
Восстановить пароль
 
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
#1

Находится ли дата между двумя другими датами - C++

06.04.2011, 12:48. Просмотров 563. Ответов 5
Метки нет (Все метки)

казалось бы задача вроде несложная, но что-то никак не могу понять в чём ошибка...
имеется структура _DATE
C++
1
2
3
4
5
6
struct _DATE
{
    int day;
    int month;
    int year;
}
и функция для определения, находится ли указанная дата между двумя другими
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool DateCompare(_DATE from, _DATE date, _DATE to)
{
    if(date.year < from.year || date.year > to.year)
        return false;
 
    if(date.month < from.month || date.month > to.month)
        return false;
 
    if(date.day < from.day || date.day > to.day)
        return false;
 
    return true;
}
функция кривая, никак не могу сообразить как это правильно сделать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2011, 12:48     Находится ли дата между двумя другими датами
Посмотрите здесь:

Как вычислить интервал между двумя датами в структуре? C++
C++ Вычисление разности между двумя датами (Turbo C)
Программа, определяющая разницу в сутках между двумя датами C++
Рассчитать количество дней, прошедших между двумя датами C++
C++ Определить число дней между двумя известными датами. Если вторая дата предшествует первой, то результат отрицательный
C++ Вывести разницу дней между двумя датами
Вычислить разницу между двумя датами C++
Посчитать количество дней между двумя датами C++
Вывести разницу в днях между двумя датами C++
Количество дней между двумя датами C++
Вычислить количество дней между двумя датами C++
Определить количество дней между двумя датами C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
06.04.2011, 13:11     Находится ли дата между двумя другими датами #2
А если так:
C++
1
2
3
4
5
6
7
bool DateCompare(_DATE from, _DATE date, _DATE to)
{
     if ((date.day >= from.day && date.day <= to.day) &&(date.month >= from.month &&
            date.month <= to.month) && (date.year >= from.year && date.year <= to.year))
        return true;
    return false;
}
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
06.04.2011, 16:13  [ТС]     Находится ли дата между двумя другими датами #3
чё-то неа, такой вариант тоже не работает походу ) ещё будут предложения?

т.е если рассмотреть вот такой вариант,
Код
1.4.2010    6.4.2011    29.1.2013 (from, date, to)
здесь видим что date.month > to.month, и поэтому функция возвращает ложь )

Добавлено через 2 часа 27 минут
ниужели нет идей? а то реально мне это мозг выносит, просто не знаю куда деваться )))
IrineK
Заблокирован
06.04.2011, 18:23     Находится ли дата между двумя другими датами #4
Можно для каждой даты построить такое:
365*year + 12*month+ day
и сравнивать.

Или такое:
10000*year + 100*month + day
и также сравнивать.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
06.04.2011, 18:31     Находится ли дата между двумя другими датами #5
IrineK, Есть еще и високосные года.
IrineK
Заблокирован
06.04.2011, 18:38     Находится ли дата между двумя другими датами #6
Поэтому вторая комбинация, кажется, универсальная.
Нужно погонять.
Yandex
Объявления
06.04.2011, 18:38     Находится ли дата между двумя другими датами
Ответ Создать тему
Опции темы

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