WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Возвращаемся к разности двух дат!

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Возвращаемся к разности двух дат!
SUnteXx опубликован 01-11-2001 14:55 MSK   Click Here to See the Profile for SUnteXx   Click Here to Email SUnteXx  
Всем, Hlo! Я хотел спросить и спрашиваю, кто-нить знает как вручную сделать разность двух дат! Если есть структура аля

struct DAY
{ int iYears, iDays, iMonth, iHours, iMin, iSec;
};

Со всякими mktime мы уже разобрались! Не катит! Еще раз, как ВРУЧНУЮ сделать разность двух дат!

Sourcer опубликован 01-11-2001 15:20 MSK     Click Here to See the Profile for Sourcer  Click Here to Email Sourcer     
Как предложил server_mouse
int y1,y2,m1,m2;

//типа вычисляем скока дней в году и скока дней в месяце
if(first_month!=1&&first_month!=2)
if(first_month%2==0) m1=31; else m1=30;
if(if(first_month==1) m1=31;

if(first_month==2)
if(first_year%4==0)
{m1=29; y1=366} else {m1=28 y1=365};


..........
так ещё и для y2 и m2, ноуже со второй датой
..........


double Sum1=first_year*((y1*24+24/4)*60*60)+first_month*m1*24*60*60+first_day*24*60*60+first_hour*60*60+first_min*60+first_sec;

double Sum2=second_year*((y2*24+24/4)*60*60)+second_month*m2*24*60*60+second_day*24*60*60+second_hour*60*60+second_min*60+second_sec;

result=abs(Sum1-Sum2);

Ну вот и разность....:)))))))))
ТОлько в чём...:)))(Х/З)

На слабых компах не работает...
На 1ом пне у меня неработает, но на третем работала...:))


Flex Ferrum опубликован 01-11-2001 16:04 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
В таком случае (если mktime не подходит) - делай иначе: переводи твоую структуру в юлианскую дату (получится одно большое число) - и делай с ним что хош. Как перевести в юлианскую дату - это уже другой вопрос. Сам я на вскидку не помню, но в инете, я думаю, нарыть можно.
server_mouse опубликован 01-11-2001 16:07 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
>Ну вот и разность....:)))))))))
>ТОлько в чём...:)))(Х/З)

В секундах.

>На слабых компах не работает...
>На 1ом пне у меня неработает, но на третем работала...:))
%| ПОЧЕМУ???

Sourcer опубликован 01-11-2001 16:42 MSK     Click Here to See the Profile for Sourcer  Click Here to Email Sourcer     
Незнаю почему, но я пробовал... не работает на 1ом пне, но на 3ем пашет...
Может соопрцессор не выдерживает или чё то ещё...

Короче хрень какая то ...

Demo_S опубликован 04-11-2001 02:27 MSK     Click Here to See the Profile for Demo_S  Click Here to Email Demo_S     
можетя чего не понимаю, но что вам мешает сделать так
пусть есть д1.м1.г1
и д2.м2.г2
считаем сколько дней прогло от 1.1.г1 до д1.м1.г1
(массив из количества дней в месяцах проходим циклом+ если м1>1 и год високосный, то прибавляем 1) получим ДД11
считаем, сколько дней прошло от 1.1.г1 до 1.1.г2 (опять же циклом, чтобы учитывать високосность)получим ДД12
счтаем сколько дней прошло от 1.1.г2 до д2.м2.г2 получим ДД22
искомое равно
ДД22+ДД12-ДД11 если первая дата меньше второй
и ДД11+ДД12-ДД22 иначе.

вроде должно работать. если нужен пример - пиши. может даже класс для времени наваяю:))

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.