Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Номер недели в году
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Вся 1С
MATEVI
1С 77
 НомерНеделиГода(ТекущаяДата())
= 13-я неделя

1С8
 НеделяГода(ТекущаяДата())
= 13-я неделя

Excel 2007 НОМНЕДЕЛИ("19.03.2012") = 12-я неделя
Настольный календарь 19.03.12 - 12-я неделя.

Кому верить? smile.gif
Vofka
В данном случае я бы верил не 1С smile.gif
reneval
Буржуины считают что неделя начинается с воскресенья, а у нас принято - с понедельника. Соответсвенно, 1 января - в 1с"е - отделяная неделя, в ёкселе - нет.
MATEVI
Да уж...

Цитата
как-то обнаружил эту проблему переписывался и перезванивался с 1С..вот ответ:
Здравствуйте!

Предлагаемый алгоритм ISO имеет ряд существенных отличий от используемого у нас. Например, 1 января у нас всегда относится к 1-й неделе года, а 31 декабря к последней неделе предыдущего года. Даже, если эти обе даты приходятся на одну неделю. Согласно ISO-8601 31 декабря и 1 января могут относиться к одной неделе. И это будет либо последняя неделя уходящего года, либо 1-я неделя наступающего. Например, если 1 января приходится на пятницу, то согласно ISO-8601, эта дата будет оноситься к последней неделе предыдущего года, а 1-я неделя текущего года начнется только 4 января (в понедельник, то есть 1-й день недели). Таким образом, помимо функции НеделяГода() требуется функция ГодНеделиГода(), которая позоволит установить к какому году относится неделя года.

Кроме этого, согласно CLDR и ICU определение дня, с которого начинается 1-я неделя года, является локейло-зависимым. Как и определение 1-го дня недели.

Алгоритм, подобный нашему, используется в MS SQL Server в функции DATEPART(week, ...). Там тоже 1 января всегда относится к 1-й неделе года, а 31 декабря - к последней.

Возможно, если мы решим получить функциональность ISO-8601, самым правильным было бы оставить НеделяГода() как есть и ввести новые две функции для вычисления недели года и года недели года. Эта задача занесена в проект. Будет ли это реализовано и сроки реализации сказать пока не готовы


необходимо зарегистрироваться для просмотра ссылки

Цитата(reneval @ 19.03.12, 11:23) необходимо зарегистрироваться для просмотра ссылки
а у нас принято - с понедельника


Календарь и ежедневник напечатаны в Украине smile.gif

Придется изобрести велик на досуге
reneval
Цитата(MATEVI @ 19.03.12, 11:25) необходимо зарегистрироваться для просмотра ссылки
Придется изобрести велик на досуге



типа, номер дня 1 января + номер дня в году поделить без остатка на 7? )
MATEVI
Честно сказать еще не думал. Но если есть код или где то видели то поделитесь с народом smile.gif Заранее спасибо.
ivan.kh
Добрый день.
Тоже столкнулся с таким вопросом.
Решил в лоб, может кому пригодится:
    Если ДЕНЬНЕДЕЛИ(НачалоГода(ТекущаяДата()))>4 И НеделяГода(ТекущаяДата())<>1 Тогда
         ТекущНеделя = НеделяГода(ТекущаяДата()) - 1
    Иначе
         ТекущНеделя = НеделяГода(ТекущаяДата())
    КонецЕсли;

Vladal
Цитата(reneval @ 19.03.12, 12:23) необходимо зарегистрироваться для просмотра ссылки
Буржуины считают что неделя начинается с воскресенья, а у нас принято - с понедельника. Соответсвенно, 1 января - в 1с"е - отделяная неделя, в ёкселе - нет.

Когда-то с финдиректором решали такой вопрос при планировании - как считать неделю с 1 января.
Решили, что если в неделе (в нашей локали это с пн по вс) январьских дней 4 и больше, то это первая неделя.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.