Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Номер текущей недели Добавлено: 16.01.07 14:51  

Автор вопроса:  Сергей
Всем привет.
Как можно получить номер текущей недели "красиво" и "оптимально" или нужно самому считать через разность дат за начало отсчета взяв число начала первой недели? Кто-нить сталкивался с этим?

Ответить

  Ответы Всего ответов: 15  

Номер ответа: 1
Автор ответа:
 Djon



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #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
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
Автор ответа:
 Djon



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #3
Добавлено: 16.01.07 15:31
Борис, ты чуть чуть опоздал :)

Ответить

Номер ответа: 4
Автор ответа:
 Djon



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #4
Добавлено: 16.01.07 15:33
И вообще что-то не совсем то, ты написал. Сергей про недели , а не про дни спрашивал.

Ответить

Номер ответа: 5
Автор ответа:
 Stars



Вопросов: 41
Ответов: 239
 Профиль | | #5 Добавлено: 16.01.07 15:38
Да ну лано это вдруг тоже пригодится :)

Ответить

Номер ответа: 6
Автор ответа:
 Djon



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #6
Добавлено: 16.01.07 15:45
А давайте сыда всё подрят кидать все какие коды есть. Может тоже пригодится. :))

Ответить

Номер ответа: 7
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #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-сайт: www.vk-book.ru
 Профиль | | #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-сайт: www.vk-book.ru
 Профиль | | #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-сайт: Rus-Skipper.narod.ru
 Профиль | | #12
Добавлено: 17.01.07 10:36
Благодарю, вот только вопрос отсчет идет от постоянной величины 01.01? Т.е. всегда первая неделя начинается с этого числа?

Воооот что ты хочешь, тогда включи голую математику.
Читай пост 11 и делай следующие;
определи день года раздели на 7, к целому числу прибавь один, вот тебе и есть текущая (Календарная неделя)

Ответить

Номер ответа: 13
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #13
Добавлено: 17.01.07 10:39
Да забыл от дня вычти дни до первого воскресенья, а потом дели

Ответить

Номер ответа: 14
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #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-сайт: Rus-Skipper.narod.ru
 Профиль | | #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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам