Страница: 1 |
Вопрос: Номер текущей недели | Добавлено: 16.01.07 14:51 |
Автор вопроса: ![]() |
Всем привет.
Как можно получить номер текущей недели "красиво" и "оптимально" или нужно самому считать через разность дат за начало отсчета взяв число начала первой недели? Кто-нить сталкивался с этим? |
Ответы | Всего ответов: 15 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 61 Ответов: 471 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 16.01.07 15:11 |
MsgBox "Сейчас " & DatePart("ww", Now) & " неделя"
yyyy Год q Квартал m Месяц y День года d День месяца w День недели ww Неделя h Часы n Минуты s Секунды |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 41 Ответов: 239 |
Профиль | Цитата | #2 | Добавлено: 16.01.07 15:27 |
Weekday(date, [firstdayofweek]
![]() vbUseSystem = 0 Использует в качестве первого дня недели день, используемый в системе. (В Америке неделя начинается с Воскресенья, поэтому по умолчанию firstdayofweek = 1). vbSunday = 1 Воскресенье vbMonday = 2 Понедельник vbTuesday = 3 Вторник vbWednesday = 4 Среда vbThursday = 5 Четверг vbFriday = 6 Пятница vbSaturday = 7 Суббота Пример: Dim MyDate, MyWeekDay MyDate = Date ' Присваиваем текущую дату MyWeekDay = Weekday(MyDate, 0) ' MyWeekDay содержит сегодняшний день недели. Можете проверить ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 61 Ответов: 471 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 16.01.07 15:31 |
Борис, ты чуть чуть опоздал ![]() |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 61 Ответов: 471 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 16.01.07 15:33 |
И вообще что-то не совсем то, ты написал. Сергей про недели , а не про дни спрашивал. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 41 Ответов: 239 |
Профиль | Цитата | #5 | Добавлено: 16.01.07 15:38 |
Да ну лано это вдруг тоже пригодится ![]() |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 61 Ответов: 471 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 16.01.07 15:45 |
А давайте сыда всё подрят кидать все какие коды есть. Может тоже пригодится. ![]() |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 16.01.07 16:53 |
"красиво" это как? сегодня идет треья неделя нового года СЛАВА БОГУ.
Я не думал что это нужно и по этому недели в программе не отразил, но может посмотришь ее генерируемый код для других приколов и сам допишешь нужный. http://rus-skipper.narod.ru/Programs/GeneratorDat.zip Генерируемый код не претендует на истину, но работает. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() Вопросов: 41 Ответов: 239 |
Профиль | Цитата | #8 | Добавлено: 16.01.07 20:33 |
Djon А что в Vb так много примеров по данной тематике? |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 61 Ответов: 471 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 16.01.07 20:53 |
Я имел ввиду все какие есть примеры, в том числе из других тем.... Ладно... проехали.... У меня Тупая шутка. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 13 Ответов: 25 |
Профиль | Цитата | #10 | Добавлено: 17.01.07 08:48 |
Благодарю, вот только вопрос отсчет идет от постоянной величины 01.01? Т.е. всегда первая неделя начинается с этого числа? Видимо вопрос нужно немного уточнить: Задача узнать не порядковый номер недели, а календарный. Т.е. полюбому необходимо в проге указать с какого числа начинается первая неделя, м.б. 02.01 или 03.01 и отсюда делать отсчет. Как в этом случае быть?
Благодарю за ответ/ы |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 61 Ответов: 471 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 17.01.07 08:55 |
Посмотри может это.
Функция DateDiff используется для вычисления разности двух дат Возвращаемое значение Возвращает значение типа Variant(Long), указывающее число временных интервалов между двумя датами Параметры Функция содержит именованные аргументы Interval Обязательный аргумент типа String, указывающего тип добавляемого временного интервала: yyyy Год q Квартал m Месяц y День года d День месяца w День недели ww Неделя h Часы n Минуты s Секунды Interval не чуствителен к регистру букв.Литерал должен быть заключен в кавычки. Для вычисления дней между двумя датами можно использовать значение интервала дня:"y" или "d" Date1 Обязательный аргумент типа Variant(Date) или литерал даты - первая календарная дата при вычислении разности дат Date2 Обязательный аргумент типа Variant(Date) или литерал даты - вторая календарная дата при вычислении разности дат FirstDayOfWeek Необязательный аргумент типа Long, определяющего день недели. Допускается использование констант: vbUseSystem=0 Используется значение национальных системных установок vbSunday=1 Воскресенье(по умолчанию) vbMonday=2 Понедельник vbTuesday=3 Вторник vbWednesday=4 Среда vbThursday=5 Четверг vbFriday=6 Пятница vbSaturday Суббота FirstWeekOfYear Необязательный аргумент - числовая константа, указывающая, какой день недели считать первым: vbUseSystem=0 Используется системная информация vbFirstJan1=1 Неделя, содержащая 1 января vbFirstFourDays=2 Первая неделя, содержащая как минимум 4 дня нового года vbFirstFullWeek=3 Первая полная неделя года Пример ' Вычисляем сколько дней осталось до 21 века
Dim Today as Date' сегодняшний день Dim Millenium As Date' 1 день 21 века Dim retval' возвращаемое значение Today=Date ' узнаем текущую системную дату Millenium="01.01.01" retval=DateDiff("d",Today,Millenium) Form1.Caption = CStr(retval) ' выводим в заголовке формы |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 17.01.07 10:36 |
Благодарю, вот только вопрос отсчет идет от постоянной величины 01.01? Т.е. всегда первая неделя начинается с этого числа?
Воооот что ты хочешь, тогда включи голую математику. Читай пост 11 и делай следующие; определи день года раздели на 7, к целому числу прибавь один, вот тебе и есть текущая (Календарная неделя) |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 17.01.07 10:39 |
Да забыл от дня вычти дни до первого воскресенья, а потом дели |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #14 | Добавлено: 17.01.07 13:30 |
Private Sub Form_Load()
Dim PdYear As Date ' 1 день текущего года Dim ColWeek As Long PdYear = "01.01." & Year(Date) ColWeek = DateDiff("ww", PdYear, Date) Form1.Caption = "прошло целых недель" & ColWeek 'сколькуо уже понедельников минуло End Sub |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 17.01.07 13:51 |
Private Sub Form_Load()
Dim PdYear As Date ' 1 день текущего года Dim ColWeek As Long PdYear = "01.01." & Year(Date) ColWeek = DateDiff("ww", PdYear, Date, vbMonday) Form1.Caption = "прошло целых недель" & ColWeek 'сколькуо уже понедельников минуло End Sub |
Страница: 1 |
|