|
v7: Расчет стажа ..... | ☑ | ||
---|---|---|---|---|
0
boris
02.02.12
✎
06:08
|
Процедура ПриОкончанииРедактированияСтроки(Флаг);
ДнейВсего=(Дата(Дата2)-Дата(Дата1)); Лет=Цел(ДнейВсего)/365; Месяц=Цел((Цел(ДнейВсего)-Цел(ЛетНе))*365)/30; Дней =(Цел(ДнейВсего)-Цел(ЛетНе)-Цел(Месяц))/30; КонецПроцедуры не могу понять где я не прав |
|||
1
SeraFim
02.02.12
✎
06:14
|
Переменная неопределена "ЛетНе"
уточняй - в чем проблема-то?) ошибки валятся. или результаты не сходятся? |
|||
2
boris
02.02.12
✎
07:03
|
Ой
Процедура ПриОкончанииРедактированияСтроки(Флаг); ДнейВсего=(Дата(Дата2)-Дата(Дата1)); Лет=Цел(ДнейВсего)/365; Месяц=Цел((Цел(ДнейВсего)-Цел(Лет))*365)/30; Дней =(Цел(ДнейВсего)-Цел(Лет)-Цел(Месяц))/30; КонецПроцедуры результату не правильно |
|||
3
de Bug
02.02.12
✎
07:17
|
Процедура ПриОкончанииРедактированияСтроки(Флаг);
ДнейВсего=Дата2-Дата1+1; Лет=Цел(ДнейВсего/365); Месяц=Цел(ДнейВсего%365)/30; Дней =ДнейВсего-Лет*365-Месяц*30; КонецПроцедуры |
|||
4
Wobland
02.02.12
✎
07:19
|
когда уже будем на 86400 для ДнейВсего делать?
|
|||
5
Wobland
02.02.12
✎
07:19
|
(4) *делить на 86400
|
|||
6
de Bug
02.02.12
✎
07:21
|
(5) Это семерка...
(3) Поправочка. Месяц=Цел(ДнейВсего%365/30); или Месяц=Цел((ДнейВсего - Лет*365)/30); |
|||
7
Эмбеддер
02.02.12
✎
07:44
|
Бред
|
|||
8
ParaWiz
02.02.12
✎
07:57
|
кстати а почему 30 а не 30.25 как принято?
|
|||
9
KishMish
02.02.12
✎
07:58
|
(0)
везде не прав надо наверное так ДнейВсего=(Дата(Дата2)-Дата(Дата1)); Лет=Цел(ДнейВсего/365); ОставшихсяДней=(ДнейВсего-Лет*365); Месяцев=Цел(ОставшихсяДней/30); Дней =ОставшихсяДней-Месяцев*30; |
|||
10
napagokc
02.02.12
✎
08:07
|
Пример из справки 8.2:
Процедура ПолучитьСтажЗаПериод(Знач ДатаОкончанияПериода, Знач ДатаНачалаПериода, Лет=0, Месяцев=0, Дней=0) Экспорт Если ДатаОкончанияПериода >= ДатаНачалаПериода тогда Лет1 = Год(ДатаОкончанияПериода); Месяцев1 = Месяц(ДатаОкончанияПериода); Если НачалоДня(ДатаОкончанияПериода) <> НачалоДня(КонецМесяца(ДатаОкончанияПериода)) Тогда Дней1 = День(ДатаОкончанияПериода); Иначе Дней1 = 30;//В каждом месяце ровно 30 дней КонецЕсли; Лет2 = Год(ДатаНачалаПериода); Месяцев2 = Месяц(ДатаНачалаПериода); Если НачалоДня(ДатаНачалаПериода) <> НачалоДня(КонецМесяца(ДатаНачалаПериода)) Тогда Дней2 = День(ДатаНачалаПериода); Иначе Дней2 = 30;//В каждом месяце ровно 30 дней КонецЕсли; Лет = Лет1 - Лет2; Месяцев = Месяцев1 - Месяцев2; Дней = Дней1 - Дней2 + 1; //1 день на увольнение Иначе Лет = 0; Месяцев = 0; Дней = 0; КонецЕсли; КонецПроцедуры //ПолучитьСтажЗаПериод |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |