|
v7: Подскажите как имея кол-во дней найти сколько это лет,месяцев,дней |
☑ |
0
ОМЭЗ
04.04.12
✎
12:51
|
Подскажите как имея кол-во дней найти скоько это лет,месяцев,дней.
Интересует алгоритм может кто с этим сталкивался????
Есть фун-ия которая возвращает кол-во дней,хотелось бы разбить дни на года,месяца и дни
|
|
1
Он
04.04.12
✎
12:53
|
Дома лежит. Там есть грабли. ЗиК врёт.
|
|
2
Fish
гуру
04.04.12
✎
12:55
|
(0) Посчитать не предлагать?
|
|
3
vinogradъ
04.04.12
✎
12:56
|
(0) точное кол-во лет-месяцев-дней можно посчитать только если есть 2 даты, по количеству дней - никак
|
|
4
dk
04.04.12
✎
12:56
|
тупо
'01.01.0001' + твое количество дней
|
|
5
dk
04.04.12
✎
12:57
|
но, не точно )
|
|
6
Sedoy
04.04.12
✎
12:59
|
Написать собственную функцию...
|
|
7
ОМЭЗ
04.04.12
✎
12:59
|
С двумя датами я понимаю как найти,но там цикл и всеровно если считать от дат то мне нужно будет слаживать Год+ Год,месяц+месяц,дни+дни... потом сверять добовлять.Думал мож как-то проще можно
|
|
8
vinogradъ
04.04.12
✎
12:59
|
Функция глРасчетСтажа(НачалоОтсчета, ДатаРасчета) Экспорт
Перем ДнейВМесяце[12];
Г2 = ДатаГод(ДатаРасчета);
М2 = ДатаМесяц(ДатаРасчета);
Д2 = ДатаЧисло(ДатаРасчета);
Г1 = ДатаГод(НачалоОтсчета);
М1 = ДатаМесяц(НачалоОтсчета);
Д1 = ДатаЧисло(НачалоОтсчета);
Лет = Г2 - Г1;
Если М2 < М1 Тогда
Лет = Лет - 1;
КонецЕсли;
Месяцев = ?(М2 > М1, М2 - М1, М2 + (12 - М1));
Месяцев = ?(М2 = М1, 0, Месяцев);
Если Д2 < Д1 Тогда
Месяцев = Месяцев - 1;
Если Месяцев = -1 Тогда
Месяцев = 11;
Лет = Лет - 1;
КонецЕсли;
КонецЕсли;
ДнейВМесяце[1] = 31;
ДнейВМесяце[2] = ?(Г1%4 = 0, 29, 28);
ДнейВМесяце[3] = 31;
ДнейВМесяце[4] = 30;
ДнейВМесяце[5] = 31;
ДнейВМесяце[6] = 30;
ДнейВМесяце[7] = 31;
ДнейВМесяце[8] = 31;
ДнейВМесяце[9] = 30;
ДнейВМесяце[10] = 31;
ДнейВМесяце[11] = 30;
ДнейВМесяце[12] = 31;
Дней = ?(Д2 > Д1, Д2-Д1, Д2 + (ДнейВМесяце[М1] - Д1));
Дней = ?(Д2 = Д1, 0, Дней);
Сз = СоздатьОбъект("СписокЗначений");
Сз.ДобавитьЗначение(Лет, "Лет");
Сз.ДобавитьЗначение(Месяцев, "Месяцев");
Сз.ДобавитьЗначение(Дней, "Дней");
Возврат Сз;
КонецФункции
|
|
9
Sedoy
04.04.12
✎
12:59
|
+6 = - 3 часа на форуме
|
|
10
ОМЭЗ
04.04.12
✎
13:00
|
(9)У меня там цикл с датами,всеровно потом слаживать нужно
|
|
11
Rovan
гуру
04.04.12
✎
13:02
|
(0) бред какой-то! например у тебя 30 дней:
если от 1 января, то это просто 30 дней
а если 1 февраля, то 1 месяц и 2 дня (или даже 1 день, если в феврвле 29 дней)
|
|
12
Он
04.04.12
✎
13:08
|
|
|
13
andrewks
04.04.12
✎
13:09
|
(3) +1
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший