Автор: MATEVI 19.03.12, 11:11
1С 77
НомерНеделиГода(ТекущаяДата())
= 13-я неделя
1С8
НеделяГода(ТекущаяДата())
= 13-я неделя
Excel 2007 НОМНЕДЕЛИ("19.03.2012") = 12-я неделя
Настольный календарь 19.03.12 - 12-я неделя.
Кому верить?
Автор: Vofka 19.03.12, 11:15
В данном случае я бы верил не 1С
Автор: reneval 19.03.12, 11:23
Буржуины считают что неделя начинается с воскресенья, а у нас принято - с понедельника. Соответсвенно, 1 января - в 1с"е - отделяная неделя, в ёкселе - нет.
Автор: MATEVI 19.03.12, 11:25
Да уж...
Цитата
как-то обнаружил эту проблему переписывался и перезванивался с 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, самым правильным было бы оставить НеделяГода() как есть и ввести новые две функции для вычисления недели года и года недели года. Эта задача занесена в проект. Будет ли это реализовано и сроки реализации сказать пока не готовы
http://pro1c.org.ua/redirect.php?http://www.forum.mista.ru/topic.php?id=477702
Цитата(reneval @ 19.03.12, 11:23)
а у нас принято - с понедельника
Календарь и ежедневник напечатаны в Украине
Придется изобрести велик на досуге
Автор: reneval 19.03.12, 11:50
Цитата(MATEVI @ 19.03.12, 11:25)
Придется изобрести велик на досуге
типа, номер дня 1 января + номер дня в году поделить без остатка на 7? )
Автор: MATEVI 19.03.12, 12:36
Честно сказать еще не думал. Но если есть код или где то видели то поделитесь с народом Заранее спасибо.
Автор: ivan.kh 28.04.17, 10:02
Добрый день.
Тоже столкнулся с таким вопросом.
Решил в лоб, может кому пригодится:
Если ДЕНЬНЕДЕЛИ(НачалоГода(ТекущаяДата()))>4 И НеделяГода(ТекущаяДата())<>1 Тогда
ТекущНеделя = НеделяГода(ТекущаяДата()) - 1
Иначе
ТекущНеделя = НеделяГода(ТекущаяДата())
КонецЕсли;
Автор: Vladal 14.08.18, 11:37
Цитата(reneval @ 19.03.12, 12:23)
Буржуины считают что неделя начинается с воскресенья, а у нас принято - с понедельника. Соответсвенно, 1 января - в 1с"е - отделяная неделя, в ёкселе - нет.
Когда-то с финдиректором решали такой вопрос при планировании - как считать неделю с 1 января.
Решили, что если в неделе (в нашей локали это с пн по вс) январьских дней 4 и больше, то это первая неделя.