![]() |
![]() |
![]() |
|
Разность дат | ☑ | ||
---|---|---|---|---|
0
roam
02.12.08
✎
08:56
|
Как определить сколько лет, месяцев и дней в промежутке между двумя датами (с учетом високосных годов и т.п.). Например:
19.08.1993 - 10.01.1994 - 5 месяце 22 дня. 12.01.2008 - 25.07.2001 - 1 год 6 месяцев 13 дней |
|||
1
Shurjk
02.12.08
✎
08:59
|
Ну это очень сложно. Во первых надо знать что из себя представляет тип Дата. И сколько секунд в днях, месяцах, годах, и какие года бывают високосными...
|
|||
2
RomaH
naïve
02.12.08
✎
08:59
|
01.01.0001 + (Дата2 - Дата1)
Лет = Год() Месяцев = Месяц() Дней = День() ? |
|||
3
and2
02.12.08
✎
09:03
|
(0) Запросом
|
|||
4
roam
02.12.08
✎
09:04
|
(3) без разницы
|
|||
5
НЕА123
02.12.08
✎
09:05
|
(4) РАЗНОСТЬДАТ (запросом)
|
|||
6
and2
02.12.08
✎
09:07
|
(4) приводи к началоПериода месяца и года и разностьюДат считай.
|
|||
7
НЕА123
02.12.08
✎
09:14
|
в типовых в общих модулях есть такая функция. запросом делал, но оченно сложно.
|
|||
8
roam
02.12.08
✎
09:15
|
(2) не получается даже на первом примере
(5) разностью дат не получится (6) что то не пойму чем это поможет |
|||
9
roam
02.12.08
✎
09:15
|
(7) ты не помнишь, где в типовой это используется?
|
|||
10
roam
02.12.08
✎
09:17
|
самая запарка в днях, остальное считается просто....
|
|||
11
Garkin
02.12.08
✎
09:17
|
||||
12
Serg_1960
02.12.08
✎
09:18
|
В типовой есть необходимый для Вас функционал. Например УПП:
Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0) Экспорт См. Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0) Обсуждали в v8: Как посчитать число месяцев между ДатаНачало и ДатаКонца? |
|||
13
КуплюКровать
02.12.08
✎
09:20
|
ОбщегоНазначения.РазобратьРазностьДат(ДатаОкончания, ДатаНачала, Лет, Месяцев, Дней) это ЗУП
|
|||
14
Serg_1960
02.12.08
✎
09:21
|
Имхо: такие процедуры (РазобратьРазностьДат) растиражированы по всем конфам :)
|
|||
15
Serg_1960
02.12.08
✎
09:21
|
||||
16
dk
02.12.08
✎
09:23
|
дык в чем трабла?
1. Получаешь года - получаешь разницу 2. Получаешь месяцы - получаешь разницу, если разница < 0, то вычитаешь из года 1 и добавляешь к месяцам 12 3. Получаешь дни - получаешь разницу, если разница < 0, то вычитаешь из месяцев 1 и Добавитьмесяц, можно еще раз проверить 2. |
|||
17
Serg_1960
02.12.08
✎
09:27
|
(16) Где трабла? Дык она в Вашем алгоритме :)
|
|||
18
roam
02.12.08
✎
09:30
|
всем спасибо, особенно (12) и (13), помогла процедура РазобратьРазностьДат
|
|||
19
Cheater
02.12.08
✎
09:31
|
||||
20
dk
02.12.08
✎
09:32
|
(17) точно?
хотя самому лениво проверять |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |