(РЕШЕНО) Неделя года НеделяГода() работает не по ГОСТ-календарю?
Автор Gellemar, 21 фев 2012 08:54
Сообщений в теме: 11
#1
Отправлено 21 февраля 2012 - 08:54
вот данные из отладчика
строка(НеделяГода(Дата("201202260000")))
по моему календарю - это вроде как 8-я неделя... :(
строка(НеделяГода(Дата("201202260000")))
по моему календарю - это вроде как 8-я неделя... :(
#3
Отправлено 21 февраля 2012 - 09:03
Цитата
Считается, что способ определения номера недели (как и дня начала недели) является завимиым от локейла. То есть, в общем случае, в разных странах способы расчета номера недели отличаются. Функция НомерНедели() использует некоторый собственный алгоритм, не зависящий от локейла. В нем предполагается, что если хотя бы один день недели оказался в году (в начале года), то это уже неделя, имеющая номер. Началом недели всегда является понедельник. Например, если 1 января - воскресенье, то 1 января относится к первой неделе, а 2 января - ко второй.
Ничто так сильно не укрепляет веру в человека, как ПРЕДОПЛАТА!
#5
Отправлено 21 февраля 2012 - 09:16
Нифига ничего нигде не отличается. И любая трансконтинентальная компания работает с учетом этого ИСО.
Стандарт ISO 8601 и соответствующий ему межгосударственный стандарт ГОСТ ИСО 8601-2001 "ПРЕДСТАВЛЕНИЕ ДАТ И ВРЕМЕНИ".
По данному стандарту, первой неделей года является та неделя, на которую попадает первый четверг данного года. То есть в 2012 году первый четверг года попадает на 5 января. Значит 1 неделя 2012 года начинается со 2 января 2012 года. 1 января 2012 попадает на последнюю неделю 2011 года (для 2011 года - неделя под номером 52). Все это может приводить к доволе интересным результатам: год может содержать 52 или 53 недели. 29, 30, 31 декабря могут относиться к первой неделе следующего года (в случае попадания 1 января следующего года на четверг). Также может случиться наоборот, что 1, 2, и 3 января могут относиться к последней недели прошлого года (52 или 53 неделя в зависимости от года).
Стандарт ISO 8601 и соответствующий ему межгосударственный стандарт ГОСТ ИСО 8601-2001 "ПРЕДСТАВЛЕНИЕ ДАТ И ВРЕМЕНИ".
По данному стандарту, первой неделей года является та неделя, на которую попадает первый четверг данного года. То есть в 2012 году первый четверг года попадает на 5 января. Значит 1 неделя 2012 года начинается со 2 января 2012 года. 1 января 2012 попадает на последнюю неделю 2011 года (для 2011 года - неделя под номером 52). Все это может приводить к доволе интересным результатам: год может содержать 52 или 53 недели. 29, 30, 31 декабря могут относиться к первой неделе следующего года (в случае попадания 1 января следующего года на четверг). Также может случиться наоборот, что 1, 2, и 3 января могут относиться к последней недели прошлого года (52 или 53 неделя в зависимости от года).
1С как и во многих других случаях, приняло все детали во внимание.
БЛИН.
как минимум за этот год разосланные везде статотчеты неверны.
Стандарт ISO 8601 и соответствующий ему межгосударственный стандарт ГОСТ ИСО 8601-2001 "ПРЕДСТАВЛЕНИЕ ДАТ И ВРЕМЕНИ".
По данному стандарту, первой неделей года является та неделя, на которую попадает первый четверг данного года. То есть в 2012 году первый четверг года попадает на 5 января. Значит 1 неделя 2012 года начинается со 2 января 2012 года. 1 января 2012 попадает на последнюю неделю 2011 года (для 2011 года - неделя под номером 52). Все это может приводить к доволе интересным результатам: год может содержать 52 или 53 недели. 29, 30, 31 декабря могут относиться к первой неделе следующего года (в случае попадания 1 января следующего года на четверг). Также может случиться наоборот, что 1, 2, и 3 января могут относиться к последней недели прошлого года (52 или 53 неделя в зависимости от года).
Стандарт ISO 8601 и соответствующий ему межгосударственный стандарт ГОСТ ИСО 8601-2001 "ПРЕДСТАВЛЕНИЕ ДАТ И ВРЕМЕНИ".
По данному стандарту, первой неделей года является та неделя, на которую попадает первый четверг данного года. То есть в 2012 году первый четверг года попадает на 5 января. Значит 1 неделя 2012 года начинается со 2 января 2012 года. 1 января 2012 попадает на последнюю неделю 2011 года (для 2011 года - неделя под номером 52). Все это может приводить к доволе интересным результатам: год может содержать 52 или 53 недели. 29, 30, 31 декабря могут относиться к первой неделе следующего года (в случае попадания 1 января следующего года на четверг). Также может случиться наоборот, что 1, 2, и 3 января могут относиться к последней недели прошлого года (52 или 53 неделя в зависимости от года).
1С как и во многих других случаях, приняло все детали во внимание.
БЛИН.
как минимум за этот год разосланные везде статотчеты неверны.
#6
Отправлено 21 февраля 2012 - 09:17
Функция ЕвропейскаяНеделяГода(дНужнаяДата) ЭКСПОРТ Если НЕ ЗначениеЗаполнено(дНужнаяДата) Тогда Возврат 0; КонецЕсли; чДеньНеделиНачалаГода = ДеньНедели(НачалоГода(дНужнаяДата)); Если чДеньНеделиНачалаГода <= 4 Тогда чСмещение = 0; Иначе чСмещение = 1; КонецЕсли; чЕвропейскаяНеделя = НеделяГода(дНужнаяДата) - чСмещение; Если чЕвропейскаяНеделя = 0 Тогда Возврат НеделяГода(НачалоГода(дНужнаяДата) - 1); Иначе Возврат чЕвропейскаяНеделя; КонецЕсли; КонецФункции
Ничто так сильно не укрепляет веру в человека, как ПРЕДОПЛАТА!
#7
Отправлено 21 февраля 2012 - 09:21
Спасибо огромное.
Но мой авторитет непоправимо уже постадал... :(( наполовину не шутка.
Жаль, что мы не в Европе и не в штатах....засудил бы :)))
Но мой авторитет непоправимо уже постадал... :(( наполовину не шутка.
Жаль, что мы не в Европе и не в штатах....засудил бы :)))
#8
Отправлено 21 февраля 2012 - 09:26
Ну, попробовали бы и получили бы иск на оплату судебных издержек, т.к. 1С в данном случае оставляет "AS IS".
Ибо расчеты, как Вам уже указали, отличаются по разным методикам (Вы взяли только ISO, а их еще много....)
Ибо расчеты, как Вам уже указали, отличаются по разным методикам (Вы взяли только ISO, а их еще много....)
Ничто так сильно не укрепляет веру в человека, как ПРЕДОПЛАТА!
#9
Отправлено 21 февраля 2012 - 09:41
:) Вы еще начните доказывать что новый год - это 01.01.хххх
Финансовый год, например - он же фискальный год, в России начинается 1 января, а в США с 1го Октября, у Японцев с 1го Апреля
P.S.
США и их "засудят" - пример развесистой клюквы насаждаемой Галивудом и Задорновым.
На самом деле все не совсем так, как вещает зомбоящик.
Ибо как заметил BabySG - выйгрыш еще может быть, а может и не быть, а вот финансовые издержки будут однозначно (и не всегда они будут покрыты в случае выигрыша). И это не говоря про временные издержки.
И за случайно обраненноепидgay вы рискуете получить по епаface и в Москве, и в Нью-Йорке, и в любом колхозе Алабымы. Без суда и следствия, да.
Финансовый год, например - он же фискальный год, в России начинается 1 января, а в США с 1го Октября, у Японцев с 1го Апреля
P.S.
США и их "засудят" - пример развесистой клюквы насаждаемой Галивудом и Задорновым.
На самом деле все не совсем так, как вещает зомбоящик.
Ибо как заметил BabySG - выйгрыш еще может быть, а может и не быть, а вот финансовые издержки будут однозначно (и не всегда они будут покрыты в случае выигрыша). И это не говоря про временные издержки.
И за случайно обраненное
Не все полезно - что в БД залезло
#10
Отправлено 21 февраля 2012 - 09:58
Понятно, что все судебные перспективы, это наполовину шутка, но как минимум можно было бы требовать от 1С:
1. Применения стандартов ИСО к своей работе, раз они требуют этого от нас.
2. Ну или как минимум, расшифровывать сразу алгоритм работы своей "спорной" функции в документации.
1. Применения стандартов ИСО к своей работе, раз они требуют этого от нас.
2. Ну или как минимум, расшифровывать сразу алгоритм работы своей "спорной" функции в документации.
#11
Отправлено 21 февраля 2012 - 10:08
1. Этот вопрос рассматривался, принято решение не переделывать (для обратной совместимости). Возможно, коогда-нибудь добавят параметр для этого.
2. Это вообще беда 1С
2. Это вообще беда 1С
Ничто так сильно не укрепляет веру в человека, как ПРЕДОПЛАТА!
#12
Отправлено 21 февраля 2012 - 10:20
1. Ну да. Чтобы оставить полную совместимость им надо было бы делать вторую функцию. Что, конечно, коряво.
спасибо всем.
Думаю можно в архив тему.
спасибо всем.
Думаю можно в архив тему.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных











