Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Разница между датами [D7, XP]


Страницы:   1 2 3 4 5 6 7 8 9

Andy BitOff (ppc) ©   (2007-11-08 13:07:00) 

Здравствуйте.
Что-то у меня уже башка не варит, сижу парюсь и шарики за ролики заходят...
Никак не удается получить разничу между датами в формате dd.mm.yy.
Например.
05.11.2007 и 08.11.2007 должно получиться 03.00.00, но при работе с типом дата месяц (как и год) не может быть равен 0.
Может кто подскажет как это можно реализовать?


Dib@zol   (2007-11-09 11:12:00) [81]

Рискну предположить: а если вычислить кол-во дней между датами, а потом отнять от него сначала кол-во дней в январе, затем в феврале бОльшего года, затем - в марте итд пока количество дней не станет меньше количества дней в том месяце, чьи дни отнимаем. Если все месяцы отняты, а дни ещё не кончились, прибавляем год. И февраль уже считаем по [больший_год - 1] году. Ет цетера.

Может подойдёт?


korneley   (2007-11-09 11:04:00) [82]


> Anatoly Podgoretsky ©   (09.11.07 10:54) [80]
> > korneley  (09.11.2007 10:33:17)  [77]
>> а с первого числа
>> любого месяца по последнее - один месяц". Во как.
> С чего бы

А хотя бы с того, что название месяца не изменилось :) Рискну повторить еще раз: если надо узнать разницу дат в днях.месяцах.годах, то и оперировать надо днями, месяцами и годами, а не количеством пройденных дней.


ЮЮ   (2007-11-09 10:59:00) [83]

[80] Anatoly Podgoretsky ©   (09.11.07 10:54)
> С чего бы

Т.е. месяц февраль, это не только с 1 по последнее число февраля, но и последний день января и первый день марта?


Думкин   (2007-11-09 10:56:00) [84]

> Anatoly Podgoretsky ©   (09.11.07 10:52) [79]

А зачем мне это адресовывать? Я вопроса не задавал и не отвечал. Я лишь заметил, что год и день стоят не на тех местах.


Anatoly Podgoretsky   (2007-11-09 10:54:00) [85]

> korneley  (09.11.2007 10:33:17)  [77]

> а с первого числа любого месяца по последнее - один месяц". Во как.

С чего бы


Anatoly Podgoretsky   (2007-11-09 10:52:00) [86]

> Думкин  (09.11.2007 10:15:14)  [74]

Что бы нагляднее
28.02.1996 - 28.02.1995 = 0.0.1 ???
29.02.1996 - 28.02.1995 = 0.0.1 ???
и
28.02.1997 - 28.02.1996 = 0.0.1
28.02.1997 - 29.02.1996 = ?


korneley   (2007-11-09 10:40:00) [87]

Поэтому получаем год = 12 месяцев, и по барабану сколько в этих месяцах дней. В [63] такой подход озвучен, правда только подход, сам пример нерабочий, потому что, если из 9 - го месяца вычесть 10 - й будет не -1, а 12 месяцев.


korneley   (2007-11-09 10:33:00) [88]

Неожиданно подумалось:" Если мы оперируем абстрактными "год" и "месяц", то со второгого марта по первое (включительно) пройдет одингод, независимо от того, високосный он или нет, а с первого числа любогомесяца по последнее - один месяц". Во как.


ЮЮ   (2007-11-09 10:31:00) [89]

> [72] SergeyIT   (09.11.07 10:06)
> По-моему так


По моему лучше так:
0.0.1 = 27.02.1996 - 28.02.1995, т.к. с 28.02.1995 по 27.02.1996 (включительно) ровно 1 год.
Соответственно, для 28.02.1995, имеем
1.0.1 - 28.02.1996  
2.0.1 - 29.02.1996
3.0.1 - 01.03.1996
...
0.1.1 - 27.03.1996

Кажеттся, что затруднения возникают, когда дней месяце начала перриода больще, чем дней конца перриода.
Что считать "ровно через месяц", начиная с 31.01, а с 30.01.

Но с доугой стороны имеет место
30.01 ... 29.02 = 0.1.x
тогда
31.01 ... 29.02 = 30.0.x (ну и что что в феврале 30 дней не бывает, зато функция однозначная ддя любой даты)


Johnmen   (2007-11-09 10:20:00) [90]


> Думкин ©   (09.11.07 10:15) [74]
> 1 год. :)

А-а-а... У него года в конце.


> SergeyIT   (09.11.07 10:06) [72]
> По-моему так
> 29.02.1996 - 28.02.1995 = 0.0.1
> 28.02.1996 - 28.02.1995 = 0.0.1

А это как понимать? Куда сутки исчезли?


Думкин   (2007-11-09 10:15:00) [91]


> Johnmen ©   (09.11.07 10:13) [73]

1 год. :)


Johnmen   (2007-11-09 10:13:00) [92]


> SergeyIT   (09.11.07 10:06) [72]
> По-моему так
> 29.02.1996 - 28.02.1995 = 0.0.1

Т.е. всего 1 (одни) сутки разницы???
Мило...:)


Johnmen   (2007-11-09 10:06:00) [93]


> SergeyIT   (09.11.07 09:47) [69]

Я, конечно понимаю, что чукча не читатель, чукча писатель, но попробую ещё раз, последний:
1.
SergeyIT ©   (08.11.07 18:07) [28]
Надо проверять.

SergeyIT   (08.11.07 22:18) [42]
01.01.2004 - 29.02.2004 = ошибка в Дельфи5
Как я и говорил - надо проверять.

Johnmen ©   (09.11.07 01:21) [52]
Вы пока только повествуете о какой-то мифической функции. Которая якобы работает без runtime ошибок и якобы выводит достоверные данные.


Где работающаяф-ия, выдающая достоверныерезультаты?

2.
15.06.2007 - 16.07.2007 = ?
15.06.2007 - 17.07.2007 = ?
15.07.2007 - 16.08.2007 = ?
15.07.2007 - 17.08.2007 = ?


SergeyIT   (2007-11-09 10:06:00) [94]

По-моему так
29.02.1996 - 28.02.1995 = 0.0.1
01.03.1996 - 28.02.1995 = 1.0.1
и так
28.02.1996 - 28.02.1995 = 0.0.1
Эти исключения надо решить, как обработать - это к автору темы - смотря что ему надо


Думкин   (2007-11-09 09:57:00) [95]

> SergeyIT   (09.11.07 09:47) [69]

Вы бы все-таки ответили на его 19 пост. А то некрасиво как-то.


SergeyIT   (2007-11-09 09:47:00) [96]


> Johnmen ©   (09.11.07 01:21) [52]
>
> Прошу заметить, что Вы пока только повествуете о какой-то
> мифической функции. Которая якобы работает без runtime ошибок
> и якобы выводит достоверные данные. При этом самой ф-ии
> не приводите.

А не пора ли Вам проснуться? - пост [28] с учетом [47].


Думкин   (2007-11-09 09:29:00) [97]

> Skyle ©   (09.11.07 09:08) [66]

У тебя не так интересно. A вот с кодом того, кому писал - это интереснее выходит. Для 1 марта.


Leonid Troyanovsky   (2007-11-09 09:20:00) [98]


> Skyle ©   (09.11.07 09:08) [66]

> Я подобный вопрос задал ещё в [2]. Автор не хочет уточнить
> :(

Дык, он же не в состоянии (см. анамнез),
у него ж паралич мыслительной мышцы.

Кста, видимо, это заразно.

--
Regards, LVT.


Skyle   (2007-11-09 09:08:00) [99]


> Думкин ©   (09.11.07 08:19) [65]

Я подобный вопрос задал ещё в [2]. Автор не хочет уточнить :(


homm   (2007-11-09 08:19:00) [100]

> Здравствуйте.
> Что-то у меня уже башка не варит, сижу парюсь и шарики за
> ролики заходят...
> Никак не удается получить

Имеено эту фразу видят люди в качестве описания вопроса. Очень емко и информативно, главное сразу понятно что нужно автору, можно даже в ветку не заходить.


Страницы:   1 2 3 4 5 6 7 8 9

Наверх

Титульная страница Поиск, карта сайта Написать письмо