Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];

Вниз

Как определить номер недели в году?   Найти похожие ветки 

 
Denis   (2003-12-24 16:49) [0]

Здравствуйте.
Я конкретизирую задачу.
Пишется программа для контроля оплаты и отгрузки продукции завода с использованием Делфи и MSSQL. Ведется учет понедельных, помесячных и годовых изменений. При написании программы возникло требование, чтобы номер недели проставлялся по умолчанию автоматически,если редактируется текущая неделя, либо из диапазона номеров, определенного для конкретного месяца.
У меня возникли затруднения с определением этого диапазона для каждого конкретного месяца. Единственный выход, который я нашел - зафиксировать некоторую дату в прошлом и от нее вести отсчет.
Но, на мой взгляд, этот алгоритм неоптимален.
Была попытка найти какие-то закономерности по календарю, (нечто вроде, "если январь n-го года - то 4 недели") но безуспешно.

Сталкивался ли кто-нибудь с подобной задачей?
Есть ли у кого идеи?
Подскажите пожалуйста.

ЗЫ: Сегодня, к сожалению, уже не могу учавствовать в обсуждении (если таковое будет вообще :-) ). До завтра!


 
Anatoly Podgoretsky   (2003-12-24 16:53) [1]

Во первых надо определиться по какому стандарту ты будешь определять номер недели, их несколько. Даже начало недели не одинаково у всех. Это ты должен с кем то согласовать, что бы у вас не было расхождение. В Европе в основном опираются на стандарт ISO, в Америке на другие.


 
Vovchik_A   (2003-12-24 16:56) [2]

Ну ты бы еще версию делфи сказал бы, а ?
В D6 уже есть функция WeekOfTheYear, это, видимо, то что тееб надо.


 
Denis   (2003-12-24 16:57) [3]

>ЗЫ: Сегодня, к сожалению, уже не могу учавствовать в обсуждении >>(если таковое будет вообще :-) ). До завтра!
Нарушаю сказанное :)

Стандарт, видимо, ISO, (могу ошибаться) - начало недели с понедельника.


 
Vovchik_A   (2003-12-24 16:57) [4]

2 Anatoly Podgoretsky © (24.12.03 16:53) [1]
Тощна ! WeekOfTheYear по ISO 8601


 
Denis   (2003-12-24 17:02) [5]

Vovchik_A © (24.12.03 16:56) [2]

Спасибо, я попробую эту функцию.
Я просмотрел хелп - она кажется подходит.

В принципе, с вашей помощью задача решена.

А вот все-таки есть ли у кого мысли по поводу именно алгоритма?
Именно с этой целью я завел эту ветку.


 
Anatoly Podgoretsky   (2003-12-24 17:04) [6]

Вот и хорошо, если этот стандарт устраивает то можно говорить с закказчиками ссылаясь на него или обсуждая какой другой использовать.


 
Anatoly Podgoretsky   (2003-12-24 17:05) [7]

Denis © (24.12.03 17:02) [5]
Мысли выскажены выше, ты должен это согласовать.


 
euru   (2003-12-24 17:08) [8]

В DateUtils есть функции WeekOfTheYear - она возвращает номер недели в годы по заданной дате - и WeekOfTheMonth - номер недели в месяце по заданной дате.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
14-49731
Романов Р.В.
2003-12-25 09:24
2004.01.16
Happy New Year


9-49383
Плохой человек
2003-06-17 16:09
2004.01.16
Так в чём же всё-таки писать аркады?..


7-49797
Vitall
2003-11-04 11:27
2004.01.16
Как определить установлен ли у юзера Excel (любой версии)


1-49551
mik_1
2004-01-01 22:29
2004.01.16
Application.ProcessMessages


1-49531
Brut
2004-01-02 20:51
2004.01.16
Сортировка элементов TListBox вручную





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский