Страница: 1 |
Страница: 1 |
Вопрос: Номер текущей недели
Добавлено: 16.01.07 14:51
Автор вопроса: Сергей
Всем привет.
Как можно получить номер текущей недели "красиво" и "оптимально" или нужно самому считать через разность дат за начало отсчета взяв число начала первой недели? Кто-нить сталкивался с этим?
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
Djon
Вопросов: 61
Ответов: 471
Web-сайт:
Профиль | | #1
Добавлено: 16.01.07 15:11
MsgBox "Сейчас " & DatePart("ww", Now) & " неделя"
yyyy
Год
q
Квартал
m
Месяц
y
День года
d
День месяца
w
День недели
ww
Неделя
h
Часы
n
Минуты
s
Секунды
Номер ответа: 2
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #2
Добавлено: 16.01.07 15:27
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
Автор ответа:
Djon
Вопросов: 61
Ответов: 471
Web-сайт:
Профиль | | #3
Добавлено: 16.01.07 15:31
Борис, ты чуть чуть опоздал
Номер ответа: 4
Автор ответа:
Djon
Вопросов: 61
Ответов: 471
Web-сайт:
Профиль | | #4
Добавлено: 16.01.07 15:33
И вообще что-то не совсем то, ты написал. Сергей про недели , а не про дни спрашивал.
Номер ответа: 5
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #5
Добавлено: 16.01.07 15:38
Да ну лано это вдруг тоже пригодится
Номер ответа: 6
Автор ответа:
Djon
Вопросов: 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
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #8
Добавлено: 16.01.07 20:33
Djon А что в Vb так много примеров по данной тематике?
Номер ответа: 9
Автор ответа:
Djon
Вопросов: 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
Автор ответа:
Djon
Вопросов: 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
Первая полная неделя года
Пример
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
Воооот что ты хочешь, тогда включи голую математику.
Читай пост 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
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
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