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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2013, 21:47   #1
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию Сравнение дат

Был вариант -
d1 = dd+mm*31+yy*365;
d2 = dd+mm*31+yy*365;
if(d1>d2)...

Но этот вариант не дает дает 100% точности. Есть еще варианты ?
Praud вне форума Ответить с цитированием
Старый 21.11.2013, 21:53   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

что за даты? почему их нельзя просто сравнить?
eval вне форума Ответить с цитированием
Старый 21.11.2013, 21:54   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

if (y1>y2) or (y1 = y2) and (m1 > m2) or (y1 = y2) and (m1 = m2) and (d1 > d2) then..
Poma][a вне форума Ответить с цитированием
Старый 21.11.2013, 21:54   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Это Си ?
А что time() нельзя использовать? Если конечно, все даты позже 1900 года.
type_Oleg вне форума Ответить с цитированием
Старый 21.11.2013, 22:04   #5
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Да, си. Если бы можно было исп time, я бы его использовал.
Praud вне форума Ответить с цитированием
Старый 21.11.2013, 22:05   #6
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Преподаватель, как раз говорил про 1900 год что-то) сказал реализовать, как в экселе это реализовано
Praud вне форума Ответить с цитированием
Старый 21.11.2013, 22:14   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от Praud Посмотреть сообщение
Преподаватель, как раз говорил про 1900 год что-то) сказал реализовать, как в экселе это реализовано
В Excel - что-то вроде модернизированной юлианской даты используется. Число дней с полуночи 30-31.12.1899.
type_Oleg вне форума Ответить с цитированием
Старый 21.11.2013, 22:21   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 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 февраля.. печалька
Poma][a вне форума Ответить с цитированием
Старый 21.11.2013, 22:28   #9
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

В крайнем случае, если не найдете проще, можно вычислять юлианскую дату, и сравнивать их.
Вот http://ru.wikipedia.org/wiki/Юлианская_дата
type_Oleg вне форума Ответить с цитированием
Старый 21.11.2013, 22:49   #10
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 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 датой и сравнивать. Пишу с мобилы, сори если что
Praud вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение дат 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