![]() |
![]() |
|
Количество недель в месяце | ☑ | ||
---|---|---|---|---|
0
pessok
11.07.11
✎
11:32
|
Доброго времени суток. Вот тут подумал, а как бы получить количество недель в месяце? Обходить циклом через НеделяГода, наверное, не самый гибкий вариант. Подскажите, если не сложно.
|
|||
1
simol
11.07.11
✎
11:34
|
52
|
|||
2
Murzz
11.07.11
✎
11:34
|
ну это зависит от того, каким днем недели являетяс первый день месяца, и сколько дней в месяце. Надо только зависимость точную найти
|
|||
3
Sakura
11.07.11
✎
11:34
|
(1) в месяце?!
|
|||
4
Fragster
гуру
11.07.11
✎
11:34
|
дней в месяце / 7
|
|||
5
Murzz
11.07.11
✎
11:34
|
(1) скорее уж 4
|
|||
6
Fragster
гуру
11.07.11
✎
11:35
|
автору учится задавать вопросы. срочно.
|
|||
7
pessok
11.07.11
✎
11:38
|
(6) насколько невнятно я задал вопрос? :)
мне надо получить количество рабочих недель в месяце. Т.к. в каждом месяце оно разное, где-то 4, где-то 5, а где-то и 6 |
|||
8
pessok
11.07.11
✎
11:38
|
(2) вот это ближе. Я пока сам не придумаю, как сделать правильно...
|
|||
9
ice777
11.07.11
✎
11:39
|
(7) 6? это что-то новое )
|
|||
10
Sakura
11.07.11
✎
11:39
|
(9) у автора свои, особенные месяцы :)
|
|||
11
ice777
11.07.11
✎
11:40
|
(8) перебери дни в месяце, никак по-другому.
|
|||
12
pessok
11.07.11
✎
11:41
|
(11) май 2011 года :) ну да, у меня воскресенье - рабочий день
|
|||
13
pessok
11.07.11
✎
11:41
|
(10) см (12)
|
|||
14
pessok
11.07.11
✎
11:42
|
(11) тогда второй вопрос, а как их перебрать?
Для А = Выборка.ВремяНач По Выборка.ВремяКон Цикл не работает |
|||
15
Sakura
11.07.11
✎
11:42
|
(12) Э, и что? Недель больше 4,5 просто по количеству дней быть не может :)
|
|||
16
pessok
11.07.11
✎
11:43
|
(1) в неделе месяца может быть 2 дня. Посмотри календарик. Май 2011. Посмотри сколько там недель в мае. Не полных недель по 7 дней, а всего недель.
|
|||
17
pessok
11.07.11
✎
11:43
|
ой, (16) было в ответ на (15)
|
|||
18
ice777
11.07.11
✎
11:44
|
(13) а пофигу. 31/7 < 5.
кто ясно мыслит- тот ясно излагает ) (16) так и излагай - неполных. |
|||
19
acsent
11.07.11
✎
11:46
|
(18) Зачем ты придумал про полные недели?
|
|||
20
basicm
11.07.11
✎
11:46
|
(7) дык рабочих или просто недель?
|
|||
21
pessok
11.07.11
✎
11:46
|
(18) каюсь, не догадался, что такое может быть неочевидным. Просто у меня такое сплошь и рядом. Так как правильно перебрать?
|
|||
22
pessok
11.07.11
✎
11:48
|
(20) так. ставим вопрос ребром. мне просто нужно получить количество _всех_ _полных_ и _неполных_ недель в месяце. Грубо говоря так, как их показывает календарь ОС, 1С и прочее. Т.е. для мая 2011 мне надо получить 5 :) Вот!
|
|||
23
ice777
11.07.11
✎
11:48
|
(21) Со дня НачалоМесяца() по день КонецМесяца.
фя ДеньНедели |
|||
24
ice777
11.07.11
✎
11:49
|
вот тока не пойму, какой расчет может требовать такую инормацию ;)
|
|||
25
basicm
11.07.11
✎
11:50
|
(22) если в мае 2011 пять недель - то это рабочие недели
|
|||
26
73
11.07.11
✎
11:52
|
(КонецНедели(КонецМесяца(ТекущаяДата()))+1 - НачалоНедели(НачалоМесяца(ТекущаяДата())))/60/60/24/7
|
|||
27
pessok
11.07.11
✎
11:53
|
(23) попробуем
(24) специфическая конфа по мерчандайзингу. есть 20 в месяц, надо расчитать сколько их будет за неделю (25) так я вроде так и писал сначала, но народ не понял про "рабочих недель"... |
|||
28
vudo
11.07.11
✎
11:54
|
(0)А вопрос не такой уж и тупой!
Предлагаю: Функция ОпределениеКвоНедельВМесяце(Дата) ДатаНачалаМесяца = НачалоМесяца(Дата); ПервыйНомерНеделиВГоду = НеделяГода(ДатаНачалаМесяца); ПоследнийНомерНеделиВГоду = 0; Для КвоНедель = 1 по 5 Цикл РасчетнаяДата = ДатаНачалаМесяца + (КвоНедель * 7) Если РасчетнаяДата > КонецМесяца(Дата) Тогда Превать; КонецЕсли; ПоследнийНомерНеделиВГоду = НеделяГода(ДатаНачалаМесяца); КонецЦикла; Возврат ПоследнийНомерНеделиВГоду - ПервыйНомерНеделиВГоду ; КонецФункции Как-то так! Сам не проверял! Может где ошибки. :) Но идея такая... |
|||
29
vudo
11.07.11
✎
11:55
|
ПоследнийНомерНеделиВГоду = НеделяГода(ДатаНачалаМесяца);
читать как ПоследнийНомерНеделиВГоду = НеделяГода(РасчетнаяДата); |
|||
30
pessok
11.07.11
✎
11:56
|
(23) не хочет он даты по циклу обходить. в семерке, помнится, обходил, в 8-ке не хочет. надо преобразовывать.
(28) спасибо за поддержку, сейчас попробую. (29) попробую, но опять таки не обходятся даты в цикле :( |
|||
31
73
11.07.11
✎
11:57
|
(30) А (26) попробуй...
|
|||
32
pessok
11.07.11
✎
11:59
|
(31) попробую
(28) 0 возвращает... |
|||
33
pessok
11.07.11
✎
12:03
|
(31) (26) работает, спасибо! :) надо записать, елки-палки :)
|
|||
34
vudo
11.07.11
✎
12:04
|
Я лучше придумал и проверил!
Вот так надо: (НеделяГода(КонецМесяца(ТекущаяДата())) - НеделяГода(НачалоМесяца(ТекущаяДата()))) |
|||
35
73
11.07.11
✎
12:05
|
(34) А теперь для декабря или января попробуй...
|
|||
36
vudo
11.07.11
✎
12:07
|
(35)И что? Я то номер недели последней и начальной даты получаю!
|
|||
37
pessok
11.07.11
✎
12:10
|
(35) для января работает нормально
|
|||
38
pessok
11.07.11
✎
12:10
|
(35) да и для декабря тоже
|
|||
39
vudo
11.07.11
✎
12:11
|
(37)(38)Кто бы сомневался! Удачи!
|
|||
40
73
11.07.11
✎
12:12
|
Я просто спросил)
ЗЫ. +1 добавить надо в (34) |
|||
41
pessok
11.07.11
✎
12:15
|
(40) да, я тоже заметил, иначе с декабрем и январем косяки. я имел ввиду, что по (26) считается правильно :)
|
|||
42
vudo
11.07.11
✎
12:16
|
(40)И зачем?
Начало месяца может на воскресенье, конечно, припадать, но это же все равно другая неделя. |
|||
43
73
11.07.11
✎
12:17
|
(42) Ну посчитай для текущей даты и посмотри в календарь июля...
|
|||
44
Naumov
11.07.11
✎
12:17
|
НомерНедели(КонПериода) - НомерНедели(НачПериода) ?
|
|||
45
pessok
11.07.11
✎
12:20
|
(44) НомерНедели? Это что?
|
|||
46
Naumov
11.07.11
✎
12:23
|
Встроенные функции языка (Script functions)
НеделяГода (WeekOfYear) Синтаксис: НеделяГода(<Дата>) Параметры: <Дата> (обязательный) Тип: Дата. Исходная дата. Возвращаемое значение: Тип: Число. Номер недели в году. Описание: Определяет номер недели в году для указанной даты. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Пример: Сообщить(НеделяГода(ТекущаяДата())); |
|||
47
Naumov
11.07.11
✎
12:24
|
Ну не помню точное название функции
|
|||
48
73
11.07.11
✎
12:25
|
Это то же, что и (34). +1 тоже надо.
|
|||
49
vudo
11.07.11
✎
12:27
|
(43)(48) Точно! +1 обязательно надо!
[code] НеделяГода(КонецМесяца(ТекущаяДата())) - НеделяГода(НачалоМесяца(ТекущаяДата())) + 1 [/code] |
|||
50
pessok
11.07.11
✎
12:29
|
(49) угу. с этим расправился, щас создам новую тему, это только часть гемморроя моего :)
|
|||
51
pessok
11.07.11
✎
12:30
|
Еще раз спасибо всем откликнувшемся!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |