|
![]() |
#1 |
Moderator
|
Зависит от того, что Вы вкладываете в это понятие:
- можно конкретное число месяца поделить на 7 и округлить в нужную сторону - а можно вычислить неделю года от конкретного числа месяца и потом из нее вычесть неделю года от первого числа этого месяца Вы уверены, что Вам нужен именно месяц, а не год? |
|
![]() |
#2 |
MCT
|
Когда то писал что то подобное сейчас уже не помню, а посмотри для начала формочку SysDateLookup там прорисовываются на grid недели по определенному году
|
|
![]() |
#3 |
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. Дозвольте еще сюда эту темку до кучи прицепить. Может, на что сгодится. Люблю я всякие такие штучки с датами. |
|
![]() |
#4 |
Участник
|
Цитата:
Например, для 11.01.2010 получается -50, для 31.12.2008 = -47... ![]() Вот "самый" правильный вариант: X++: // Номер недели месяца static int wkOfMth(date _date) { return (dayOfMth(_date) + dayOfWk(dateStartMth(_date)) + 5) div 7; } |
|
![]() |
#5 |
Участник
|
Если уж Вы подняли тему более чем двухлетней давности, то неплохо бы было ознакомится со всеми статьями на эту тему
количество месяцев... В данном случае, так и не был получен ответ на вопрос с какого дня начинать отсчет недель? С первого числа месяца? С первого понедельника месяца? С первой недели года пришедшейся на первое сило месяца? А как считать неполные недели в начале и конце месяца? Следует ли их вообще учитывать? От того, какие правила будут приняты для расчета и будет зависеть какой именно "самый правильный" алгоритм следует использовать. Нет единого общего решения. |
|