|
![]() |
#1 |
Участник
|
Номер недели
Какой ф-ей можно получить номер недели текущего месяца?
|
|
![]() |
#2 |
Moderator
|
Зависит от того, что Вы вкладываете в это понятие:
- можно конкретное число месяца поделить на 7 и округлить в нужную сторону - а можно вычислить неделю года от конкретного числа месяца и потом из нее вычесть неделю года от первого числа этого месяца Вы уверены, что Вам нужен именно месяц, а не год? |
|
![]() |
#3 |
MCT
|
Когда то писал что то подобное сейчас уже не помню, а посмотри для начала формочку SysDateLookup там прорисовываются на grid недели по определенному году
|
|
![]() |
#4 |
Moderator
|
Цитата:
X++: static void Job11(Args _args) { ; // ЛИБО info( int2str( trunc((dayOfMth(today())-1)/7) + 1 ) ); // ЛИБО info( int2str( wkofyr(today()) - wkofyr(dateStartMth(today())) + 1) ); } P.S. Дозвольте еще сюда эту темку до кучи прицепить. Может, на что сгодится. Люблю я всякие такие штучки с датами. |
|
![]() |
#5 |
Участник
|
Цитата:
Например, для 11.01.2010 получается -50, для 31.12.2008 = -47... ![]() Вот "самый" правильный вариант: X++: // Номер недели месяца static int wkOfMth(date _date) { return (dayOfMth(_date) + dayOfWk(dateStartMth(_date)) + 5) div 7; } |
|
![]() |
#6 |
Участник
|
Если уж Вы подняли тему более чем двухлетней давности, то неплохо бы было ознакомится со всеми статьями на эту тему
количество месяцев... В данном случае, так и не был получен ответ на вопрос с какого дня начинать отсчет недель? С первого числа месяца? С первого понедельника месяца? С первой недели года пришедшейся на первое сило месяца? А как считать неполные недели в начале и конце месяца? Следует ли их вообще учитывать? От того, какие правила будут приняты для расчета и будет зависеть какой именно "самый правильный" алгоритм следует использовать. Нет единого общего решения. |
|
![]() |
#7 |
Участник
|
В месяце есть 4 недели мне нужно узнать какая по счету текущая неделя.
|
|
![]() |
#8 |
Участник
|
wkofyr - вот эта если кому пригодится
|
|
![]() |
#9 |
Moderator
|
|
|
![]() |
#10 |
Участник
|
|
|
![]() |
#11 |
Участник
|
Ну...
Вот по русски если чё ![]() WeekOfMonth = (wkofyr(ToDay()) - mthofyr(ToDay())*4) + 1 ; И получиться, то что надо... |
|
![]() |
#12 |
Moderator
|
|
|
![]() |
#13 |
Участник
|
В Аксапте используются ISO Week numbers:
Under the ISO standard, a week always begins on a Monday, and ends on a Sunday. The first week of a year is that week which contains the first Thursday of the year, or, equivalently, contains Jan-4. While this provides some standardization, it can lead to unexpected results -- namely that the first few days of a year may not be in week 1 at all. Instead, they will be in week 52 of the preceding year! For example, the year 2000 began on Saturday. Under the ISO standard, weeks always begin on a Monday. In 2000, the first Thursday was Jan-6, so week 1 begins the preceding Monday, or Jan-3. Therefore, the first two days of 2000, Jan-1 and Jan-2, fall into week 52 of 1999. An ISO week number may be between 1 and 53. Under the ISO standard, week 1 will always have at least 4 days. If 1-Jan falls on a Friday, Saturday, or Sunday, the first few days of the year are defined as being in the last (52nd or 53rd) week of the previous year. Unlike absolute week numbers, not every year will have a week 53. For example, the year 2000 does not have a week 53. Week 52 begins on Monday, 25-Dec, and ends on Sunday, 31-Dec. But the year 2004 does have a week 53, from Monday, 27-Dec , through Friday, 31-Dec. |
|
![]() |
#14 |
Участник
|
X++: WeekOfMonth = (wkofyr(ToDay()) - mthofyr(ToDay())*4) + 1 ; Или если ввести дату WeekOfMonth = (wkofyr(28\2\2007) - mthofyr(28\2\2007)*4 + 1) ; результат = 2 Какие у тебя проблемы не знаю |
|
![]() |
#15 |
Участник
|
упс... извиняюсь... запутался в датах
|
|
![]() |
#16 |
Axapta
|
|
|
![]() |
#17 |
Moderator
|
|
|
![]() |
#18 |
Программатор
|
Айм сорри, но помоему должно быть 3....
|
|
![]() |
#19 |
Участник
|
То есть сейчас таки первая неделя месяца?
Оригинально. Я бы (если смотреть по Аксаптовскому календарю), сказал что сейчас 4ая неделя месяца, но судя по сообщению о ISO Week numbers - это тоже не верно А приведите, пожалуйста, пару примеров, какие результаты вы хотите видеть для различных дат. |
|
![]() |
#20 |
Axapta
|
|
|
Теги |
дата, функции |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|