![]() |
![]() |
![]() |
|
Как определить разность дат с десятыми (сотыми, тысячными и т.д.) ? | ☑ | ||
---|---|---|---|---|
0
MTM777
15.10.08
✎
21:18
|
Что-то туплю..
Нужно определить, например сколько месяцев (годов) в указанном периоде и обязательно с циферками после запятой. Вот этот код возвращает только целые числа: Запрос = Новый Запрос("ВЫБРАТЬ | РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ДЕНЬ) КАК Дни, | РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, МЕСЯЦ) КАК Месяцы, | РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ГОД) КАК Года"); Запрос.УстановитьПараметр("ДатаНач", мДатаНач); Запрос.УстановитьПараметр("ДатаКон", мДатаКон+86400); //для правильного определения разности, добавим 1 день Результат = Запрос.Выполнить(); |
|||
1
MTM777
15.10.08
✎
21:22
|
(0)+ Пример:
НачДата = Дата("20081001"); КонДата = Дата("20081101"); По вышеуказанному коду, получится следующее: Дни = 32 Месяцы = 1 Года = 0 а мне надо так: Дни = 32 Месяцы = 1.03 (т.е. уже не один месяц, а больше) Года = 0 |
|||
2
Defender aka LINN
15.10.08
✎
21:23
|
Дежурный вопрос: нафига?
|
|||
3
Mikeware
15.10.08
✎
21:25
|
(2) Неправильно!
формулировка такая: ТКВ? (Традиционный Китайский Вопрос) |
|||
4
MTM777
15.10.08
✎
21:26
|
(2) осиняма нада.. )
Есть таблица с некими процентами, в ней на каждый определенный интервал указывается свой процент, примерно так: От 0 дней до 5 - 5% От 5 дней до 15 - 15% От 15 дней до 1 месяца - 20% От 1 месяца до 2 - 30% и т.д. Так вот, мне нужно в этой таблице найти вхождение указанного периода и получить соот-й процент. Ферштейн? |
|||
5
MTM777
15.10.08
✎
21:28
|
Может конечно есть и другое решение, но сильно гриппую, а по сему туплю..
|
|||
6
Defender aka LINN
15.10.08
✎
21:34
|
Что мешает добавить 5 дней, 10 дней, 3 месяца, 2 года и сравнить на больше/меньше?
|
|||
7
Михей
15.10.08
✎
21:36
|
(0) достаточно в днях считать
|
|||
8
Defender aka LINN
15.10.08
✎
21:37
|
(7) А 30 дней - это сколько месяцев? :)
|
|||
9
MTM777
15.10.08
✎
21:38
|
Вся эта проблема из хотения-получения гибкости настроек..
Т.е. эту таблицу я сохраняю в периодически РС, у ТЗ есть такие колонки: ЕдИзмМинимум|ЗначениеМинимум|ЕдИзмМаксимум|ЗначениеМаксимум Где ед.изм тип - Перечисление //Перечисления.ЕдиницыИзмеренияПериодичности.День; //Перечисления.ЕдиницыИзмеренияПериодичности.Месяц; //Перечисления.ЕдиницыИзмеренияПериодичности.Год; //Перечисления.ЕдиницыИзмеренияПериодичности.БезОграничения; Ну есс-но потом читаю данные на нужную дату, и получаю свой процент.. |
|||
10
MTM777
15.10.08
✎
21:38
|
(9)+ упс, пока не получаю..))
|
|||
11
Defender aka LINN
15.10.08
✎
21:39
|
(9) И что? Ну и храни, никто ж не машает :)
|
|||
12
MTM777
15.10.08
✎
21:40
|
(7)(8) ну шо, представили ..опу ?
|
|||
13
MTM777
15.10.08
✎
21:40
|
(11) тебе что, попиз..ть негде, давай лучше помогай.. :)
|
|||
14
Defender aka LINN
15.10.08
✎
21:42
|
(13) Хуясе. Забыло добавить "Быстро, нах!".
Я тебе уже в (6) написал, что еще надо? |
|||
15
MTM777
15.10.08
✎
21:43
|
(14) ща добавлю )
не совсем понял, шо ты мне там сказал.. |
|||
16
Barbaris
15.10.08
✎
21:44
|
До запроса не додумалась - делала вот тупо так (стаж рассчитывала)
ДнейПоПериоду=ДеньК-ДеньН; Если ДнейПоПериоду<0 Тогда ДнейПоПериоду=ДнейПоПериоду+30; КорМесяца=1; КонецЕсли; МесяцевПоПериоду=МесяцК-МесяцН-КорМесяца; Если МесяцевПоПериоду<0 Тогда МесяцевПоПериоду=МесяцевПоПериоду+12; КорГода=1; КонецЕсли; ЛетПоПериоду=ГодК-ГодН-КорГода; //если инадо в годах с запятыми ВГодах=Окр(((ДнейПоПериоду+МесяцевПоПериоду*30+ЛетПоПериоду*30*12)/30/12),2,1); |
|||
17
MTM777
15.10.08
✎
21:49
|
(16) у Вас всегда 30 дней в месяце?!
|
|||
18
MTM777
15.10.08
✎
21:53
|
похоже что только перебором, а так не хоцца..
|
|||
19
Barbaris
15.10.08
✎
21:55
|
(17)
я посмотрела в ЗУПе (как они считали стаж) там етсь вот такой коммент //Приводит стаж к нормальному виду, когда месяцев не более 12, дней не более 30 и в экселе есть формула ДНЕЙ360() (разность да, если считать что в каждом месяце 30 дней) |
|||
20
MTM777
15.10.08
✎
22:17
|
(19) спасибо конечно, но не то..
|
|||
21
Garkin
17.10.08
✎
23:05
|
ВЫБРАТЬ
РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ДЕНЬ) КАК Дни, РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, МЕСЯЦ) + РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(&ДатаНач, МЕСЯЦ, РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, МЕСЯЦ)), &ДатаКон, ДЕНЬ) / 31 КАК Месяцы, РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ГОД) КАК Года |
|||
22
Мебиус
17.10.08
✎
23:23
|
А что если привести даты к числам
а потом смотреть на разность |
|||
23
YauheniL
18.10.08
✎
00:41
|
(0) А какова точность? Год, месяц, день, секунда?? ИМХО, в секундах все даже без запятых получитсся
|
|||
24
MTM777
19.10.08
✎
21:37
|
(21) спасибо! единственно что мне тут не нравится, это 31 день..))
(22)(23) нужно именно для месяца (по аналогии и для года) знать, число после точки.. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |