|
Номер недели месяца
|
|||
---|---|---|---|
#18+
http://www.gsnti-norms.ru/norms/common/doc.asp?2&/norms/stands/8601.htm ------------------------------------------------------------------------- Скоро может начаться такая борьба за мир, что камня на камне не останется. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2007, 11:47 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
:)) как оказалось получить номер недели в месяце нетривиальная задача то что касается функции, то она действительно не работает так как надо, она была взята из SQL Server-a, загвоздка в том что там можно установить параметр- первый день недели равным 1 т.е. понедельник, а функция DayOfWeek возвращает значения от 0(воскресенье) до 6(суббота) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2007, 14:55 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
//по номеру дня недели, месяцу, году и номеру недели месяца возвращает число месяца int CDate::Compute_Date(int iNumberDay, int iMonth, int iYear, int nWeek) { int iFirstWDay=Compute_Day(1, iMonth, iYear); int delta=iNumberDay-iFirstWDay; int iret; if(delta>=0) iret= 1+(7*(nWeek-1))+delta; else iret= 8+(7*(nWeek-1))+delta; if(LeapYear(iYear)==TRUE) { const int iMn[]={0,31,29,31,30,31,30,31,31,30,31,30,31}; if(iret>iMn[iMonth]) iret=iret-7; } else { const int iMn[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if(iret>iMn[iMonth]) iret=iret-7; } return iret; } //определяет номер недели в месяце int CDate::getNumWeek(int day, int month, int year) { int ndweek=Compute_Day(1, month, year);//функция определяет день недели int week = (ndweek+day) / 7; if ((ndweek+day) % 7 > 0) week += 1; return week; } ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2007, 13:48 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
В предыдущем сообщении не ту функцию дал //номер дня недели int CDate::Compute_Day(int day, int month, int year) { int dy ; int yr ; int mn ; int n1 ; int n2 ; /* Смещение используемой системы от системы Зеллера * Замечание * * Соответствие Зеллера определяет субботу как 0. Большинство приложений * в качестве 0 используют воскресенье. Параметр ZELLER_OFFSET используется * для перевода из системы Зеллера в нужную систему. */ #define ZELLER_OFFSET -2 yr = year ; mn = month ; /* Январь или Февраль? */ /* -------------------- */ if (mn < 3) { /* да, делаем их частью предыдущего года */ /* --------------------------------- */ mn += 12 ; yr -= 1 ; } n1 = (26 * (mn + 1)) / 10 ; n2 = (int) ((125 * (long) yr) / 100) ; dy = ((day + n1 + n2 - (yr / 100) + (yr / 400) + ZELLER_OFFSET) % 7) ; return dy ; } ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2007, 13:50 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
Специальность ПО, 1-й курс :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2007, 13:54 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
Как японимаю : Нужно вычислить номер недели года начала месяца - НомНедНачМесяца, потом вычислить номер недели года вышей даты - НомНедЗначения, а потом результат = НомНедЗначения - НомНедНачМесяца +1; ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2007, 11:26 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
Ilya.volodinКак японимаю : Нужно вычислить номер недели года начала месяца - НомНедНачМесяца, потом вычислить номер недели года вышей даты - НомНедЗначения, а потом результат = НомНедЗначения - НомНедНачМесяца +1; сообветственно если нужно получить номер дня недели месяца то единицу прибавлять к результату не нужно при условии ДеньНеделиНачалаМесяца>ДеньНеделиЗначение ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2007, 14:04 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
orientКак определить номер недели месяца, к которой относится текущая дата Так и не нашел нормального варианта в интернете, пришлось придумать свой. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 21:47 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
Demidkin, теперь стирайте. :-) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2015, 13:25 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
Demidkin, Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Или вам надо точнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2015, 13:42 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
D129Или вам надо точнее? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Вот, теперь вопрос не издевательский. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2015, 13:51 |
|
Номер недели месяца
|
|||
---|---|---|---|
#18+
D129Вот, теперь вопрос не издевательский. И все равно неправильно. В месяце не точно 4 недели, а может быть и 5 и даже 6! (03.2015 в пример) Правильно вычислять разницу между неделями от указанной даты до начала месяца. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2015, 08:47 |
|
|
start [/forum/topic.php?fid=20&msg=38915903&tid=1401758]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 152ms |
0 / 0 |