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


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

Метки: дата и время

Считать возраст

Ø [Волшебник, 03.05.04 - 23:10]
Я
   gleb
01.05.04 - 15:07
В ЗиК создаем отчет, где хотели бы видеть возраст сотрудников. Однако в отчете можно вставить только год рождения. Как получить возраст?
 
 
   427
 
1 - 01.05.04 - 15:14
Мляяяяя.....

ТекущаяДата()-датаРождения....
   Волшебник
 
2 - 01.05.04 - 15:19
(1) не так все просто как кажется, если нужно получить возраст в виде:
лет, месяцев и дней
   427
 
3 - 01.05.04 - 15:33
Описывать использование функций 
РазностьЛет
РазностьМесяцев
РазностьДней

считаю излишним ....
   DElo
 
4 - 01.05.04 - 23:23
(0) Если нужно в днях, месяцах и годах, то такая же функция прописана в расчёте стажа работы сотрудника на предприятии. Стаж "толкается" от даты приказа о приёме на работу до текущей даты. Сделай всё идентично.
   kadr
 
5 - 02.05.04 - 08:11
//******************************************************************************

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

//    Параметры:
//        Дата1    - первая дата (более поздняя, часто текущая, стаж определяется по состоянию на эту дату)

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

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

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

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

//
       // алгоритм Пенсионного фонда

       //Мк = ДатаМесяц(Дата1);

       //Гк = ДатаГод(Дата1);

       //Если ДатаЧисло(Дата1) - ДатаЧисло(Дата2) < 0 Тогда

       //    Дней = ДатаЧисло(Дата1) - ДатаЧисло(Дата2) + 30;

       //    Мк = Мк - 1;

       //Иначе

       //    Дней = ДатаЧисло(Дата1) - ДатаЧисло(Дата2);

       //КонецЕсли;

       //Если Мк - ДатаМесяц(Дата2) < 0 Тогда

       //    Месяцев = Мк - ДатаМесяц(Дата2) + 12;

       //    Гк = Гк - 1;

       //Иначе

       //    Месяцев = Мк - ДатаМесяц(Дата2);

       //КонецЕсли;

       //Лет    = Гк-ДатаГод(Дата2);

       //Дней = Дней + 1;

       //Если Дней >= 30 Тогда

       //    Дней = 0;

       //    Месяцев = Месяцев + 1;

       //КонецЕсли;

       //Если Месяцев = 12 Тогда

       //    Месяцев = 0;

       //    Лет    = Лет + 1

       //КонецЕсли;

Процедура глРазобратьРазностьДат(Знач Дата1,Знач Дата2,Лет=0,Месяцев=0,Дней=0) Экспорт

    Лет = 0; Месяцев = 0; Дней = 0;
    Если Дата1>Дата2 Тогда
        
        ВременнаяДата = Дата1;
        Если ДатаЧисло(ВременнаяДата)<ДатаЧисло(Дата2) Тогда
            Дней = ВременнаяДата-ДобавитьМесяц(ВременнаяДата,-1);
            ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-1);
        КонецЕсли;
        Если ДатаМесяц(ВременнаяДата)<ДатаМесяц(Дата2) Тогда
            ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-12);
            Месяцев = 12;
        КонецЕсли;
        Лет        = Макс(             ДатаГод  (ВременнаяДата)-ДатаГод  (Дата2),0);
        Месяцев    = Макс(Месяцев    +ДатаМесяц(ВременнаяДата)-ДатаМесяц(Дата2),0);
        Дней    = Макс(Дней        +ДатаЧисло(ВременнаяДата)-ДатаЧисло(Дата2),0);
        
       // скорректируем отображаемое значение, если "вмешалось" разное количество дней в месяцах

        Если Дата2 <> (ДобавитьМесяц(Дата1,-Лет*12-Месяцев)-Дней) Тогда
            Дней = Дней + (КонМесяца(Дата2)-НачМесяца(Дата2)) - (КонМесяца(ДобавитьМесяц(Дата1,-1))-НачМесяца(ДобавитьМесяц(Дата1,-1)));
        КонецЕсли;
    КонецЕсли;

КонецПроцедуры   // глРазобратьРазностьДат
   kadr
 
7 - 03.05.04 - 07:08
(6) Кто тебе сказал, что за свою?
Надо, так получайте (с) 1С ЗиК 244
Еще вопросы будут?



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