|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.11.2013, 21:47 | #1 |
Форумчанин
Регистрация: 11.10.2012
Сообщений: 409
|
Сравнение дат
Был вариант -
d1 = dd+mm*31+yy*365; d2 = dd+mm*31+yy*365; if(d1>d2)... Но этот вариант не дает дает 100% точности. Есть еще варианты ? |
21.11.2013, 21:53 | #2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
что за даты? почему их нельзя просто сравнить?
|
21.11.2013, 21:54 | #3 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
if (y1>y2) or (y1 = y2) and (m1 > m2) or (y1 = y2) and (m1 = m2) and (d1 > d2) then..
|
21.11.2013, 21:54 | #4 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Это Си ?
А что time() нельзя использовать? Если конечно, все даты позже 1900 года. |
21.11.2013, 22:04 | #5 |
Форумчанин
Регистрация: 11.10.2012
Сообщений: 409
|
Да, си. Если бы можно было исп time, я бы его использовал.
|
21.11.2013, 22:05 | #6 |
Форумчанин
Регистрация: 11.10.2012
Сообщений: 409
|
Преподаватель, как раз говорил про 1900 год что-то) сказал реализовать, как в экселе это реализовано
|
21.11.2013, 22:14 | #7 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
|
21.11.2013, 22:21 | #8 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Еще вариант :
d1 = dd+mm*day_in_month[mm]+yy*(365+is_leap_year(yy)); Где, day_in_month константный массив is_leap_year - функ получает год и возвращает 1 при високосном иначе 0.. Ан нет.. не учитывает 29 февраля.. печалька |
21.11.2013, 22:28 | #9 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
В крайнем случае, если не найдете проще, можно вычислять юлианскую дату, и сравнивать их.
Вот http://ru.wikipedia.org/wiki/Юлианская_дата |
21.11.2013, 22:49 | #10 |
Форумчанин
Регистрация: 11.10.2012
Сообщений: 409
|
Вот что придумал, сработает?
month[]={31,28,31 и т.д} При вводе высок. года month[1]++ Далее for(int i=0;i<12;i++) tmp= month[i]*month[i+1]; dd1= dd+mm*month[mm-1]+yy*tmp; Тоже самое со 2 датой и сравнивать. Пишу с мобилы, сори если что |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение дат | nieves | SQL, базы данных | 2 | 24.09.2013 19:45 |
Сравнение дат | Canabalt | C++ Builder | 0 | 08.01.2013 16:21 |
Сравнение дат! | RSmile | БД в Delphi | 0 | 28.04.2010 20:40 |
Сравнение дат | DimOn4Ik | БД в Delphi | 5 | 27.04.2010 19:30 |
сравнение дат | Geddar | Общие вопросы Delphi | 2 | 04.06.2008 19:09 |