Вход | Регистрация

1С:Предприятие ::

Метки: Встроенный язык

Как вычислить количество месяцев между двумя датами?

Я
   Василий
26.04.04 - 14:20
Как вычислить количество месяцев между двумя датами?
 
  Рекламное место пустует
   BorisBiz
1 - 26.04.04 - 14:26
... используя ДатаГод() и ДатаМесяц()
   AVP
2 - 26.04.04 - 14:27
//******************************************************************************

//     глРазобратьРазностьДат(Дата1,Дата2,Лет,Месяцев,Дней)
//

//     Параметры:
//          Дата1     - первая дата

//          Дата2     - вторая дата
//          Лет          - в этот параметр будет записано кол-во лет между двумя датами (Дата1-Дата2)

//          Месяцев     - в этот параметр будет записано кол-во месяцев между двумя датами (Дата1-Дата2)
//          Дней     - в этот параметр будет записано кол-во дней между двумя датами (Дата1-Дата2)

//
//     Описание:

//          Процедура разбирает две даты и возвращает в параметрах кол-во лет, месяцев и дней
//          между двумя датами (Дата1-Дата2)

//
Процедура глРазобратьРазностьДат(Знач Дата1,Знач Дата2,Лет=0,Месяцев=0,Дней=0) Экспорт
    
    Лет = 0; Месяцев = 0; Дней = 0;
    Если Дата1>Дата2 Тогда
        Если ДатаЧисло(Дата1)<ДатаЧисло(Дата2) Тогда
            Дней = Дата1-ДобавитьМесяц(Дата1,-1);
            Дата1 = ДобавитьМесяц(Дата1,-1);
        КонецЕсли;
        Если ДатаМесяц(Дата1)<ДатаМесяц(Дата2) Тогда
            Дата1 = ДобавитьМесяц(Дата1,-12);
            Месяцев = 12;
        КонецЕсли;
        Лет          = Макс(                ДатаГод  (Дата1)-ДатаГод  (Дата2),0);
        Месяцев     = Макс(Месяцев     +ДатаМесяц(Дата1)-ДатаМесяц(Дата2),0);
        Дней     = Макс(Дней          +ДатаЧисло(Дата1)-ДатаЧисло(Дата2),0);
    КонецЕсли;
    
КонецПроцедуры    // глРазобратьРазностьДат
...
PS Не мое...
   mszsuz
 
3 - 26.04.04 - 14:28
Сообщить(Макс(ДатаГод(Дата1)*12+ДатаМесяц(Дата1),ДатаГод(Дата2)*12+ДатаМесяц(Дата2))-Мин(ДатаГод(Дата1)*12+ДатаМесяц(Дата1),ДатаГод(Дата2)*12+ДатаМесяц(Дата2)));
PS Моё ... ;)
   Василий
4 - 26.04.04 - 14:38
Т.Е, выходит что между 31 января  и 1 февраля получается  1 месяц?
   AVP
5 - 26.04.04 - 14:42
(4) А сколько надо?
   3V
 
6 - 26.04.04 - 15:53
(4)(+5) вообще-то стандартная процедура из ЗиК... более или менее корректно работает...
   AVP
7 - 26.04.04 - 16:53
(6) А я код оттуда вроде и стянул :-)


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует