Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Format - как вернуть НОМЕР дня недели? сам день недели вернуть не сложно, а вот 
V
    Опции темы
Baloo
Дата 4.12.2005, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 26.9.2005

Репутация: нет
Всего: нет



Всем, привет!

вернуть с помощью функции Format день недели - без проблем
Код

strDate = Format(Date, "dddd", vbMonday)

но надо прочитать НОМЕР дня недели, в данном случае например для СРЕДЫ он = 3
т.е. как вернуть эту тройку с помощью функции Format?
и поджскажите плиз - где можно посмотреть все возможные параметры (dd, ww, yyyy ...), а то в хелпе их перечислено - всего ничегоsmile
________________
C уважением
Baloo
PM MAIL ICQ   Вверх
Akina
Дата 4.12.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



smile
Лезем в хелп ака МСДН. Находим раздел "User-Defined Date/Time Formats (Format Function)". Читаем до полного понимания, особенно формат "w".

Лентяй...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Baloo
  Дата 5.12.2005, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 26.9.2005

Репутация: нет
Всего: нет



Цитата(Akina @ 4.12.2005, 21:45)
smile
Лезем в хелп ака МСДН. Находим раздел "User-Defined Date/Time Formats (Format Function)". Читаем до полного понимания, особенно формат "w".
Лентяй...

в первых строках, спешу покаяться, действительно - пардон, что засоряю эфир такой мелочью
smile

да я уж вспомнил и про: intDate = Weekday(Date, vbMonday)

Akina! в очередной раз спасибо за очередной ответ!:)
НО: насчет лентяя не согласен! Лентяй - это звучит благородно! "Настоящий Лентяй" не будет лишний раз суетиться, лезть на форум и светиться с ерундой - а просто по пути наименьшего сопротивления откроет MSDN и со знанием дела найдет за 5 сек то что надо. Ведь я полагаю ты не путаешь неведжу с лентяемsmile По моему именно чувство лени толкает человека на неворятные решения и открытия! Так что, я думаю рано ты меня наградил столь почетным званием! Но может с твоей помощью я доросту и до этого! Пардон за такую длинную преамбулу, но я собстно о следующем:

я думаю не секрет, что многие начинающие испытывают паническое чувство разочарования, когда их матерые волки просто посылают в сторону MSDNа.
А у меня еще со студенческих времен не очень то получалось подружиться с MSDN smile Т.е. когда надо что-нить найти, ищу каждый раз с помощью Search, а потом глупо перебираю кучу результатов. У меня нет как такового представления о структуре MSDN, так чтобы с толком переходить от самого верхнего уровня иерархии, до нужного пунктаsmile Может найдешь время, да научишь уму-разуму - самое простое может сам на пальцах объяснил бы, ну или может подскажешь какую-нить вводную толковую инфу по этой теме. т.е. доку как с толком пользоваться этой главной докойsmile

спасибо за понимание
с уважением
Baloo

Это сообщение отредактировал(а) Baloo - 5.12.2005, 00:44
PM MAIL ICQ   Вверх
Exception
Дата 7.12.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



[offtop]
Цитата(Baloo @ 5.12.2005, 01:38)
со студенческих времен не очень то получалось подружиться с MSDN

Я приучился с седьмого класса smile
Цитата(Baloo @ 5.12.2005, 01:38)

я думаю не секрет, что многие начинающие испытывают паническое чувство разочарования, когда их матерые волки просто посылают в сторону MSDNа.

Бывает такое... но привыкаешь. По-настоящему удобным MSDN стал начиная с версий для дотнета - находу за 2 мин. что надо...

[/offtop]
PM   Вверх
Akina
Дата 7.12.2005, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Baloo @ 5.12.2005, 01:38)
когда надо что-нить найти, ищу каждый раз с помощью Search

А единожды найдя, трудно ярлычок в "Избранное" затолкать? нет, не на конкретную тему - на Reference по Visual BASIC 6? или просто не догадамшись? ну возьми готовую:

MSDN - Visual BASIC 6 Language Reference

А там все просто - отдельно язык, отдельно контролы...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Gannibal
Дата 16.12.2005, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



Примеры работы с датами
Небольшое примечание: если в качестве входного параметра указано (Optional dteDate As Date), то вызов функции можно осуществлять как НазваниеФункции() - то есть можно оставлять пустые скобки. Например MsgBox FirstOfQuarter()

Список функций

Определение первого дня текущего квартала
Код

Function FirstOfQuarter(Optional dteDate As Date) As Date
If CLng(dteDate) = 0 Then
dteDate = Date
End If
FirstOfQuarter = DateSerial(Year(dteDate), Int((Month(dteDate) - 1) / 3) * 3 + 1, 1)
End Function


Определение последнего дня текущего квартала
Код

Function LastOfQuarter(Optional dteDate As Date) As Date
If CLng(dteDate) = 0 Then
dteDate = Date
End If
LastOfQuarter = DateSerial(Year(Date), Int((Month(Date) - 1) / 3) * 3 + 4, 0)
End Function


Определение первого дня месяца
Код

Function FirstOfMonth(Optional dteDate As Date) As Date
'если параметр dteDate = 0 то для вычисления берется текущая дата
If CLng(dteDate) = 0 Then
dteDate = Date
End If
FirstOfMonth = DateSerial(Year(dteDate), Month(dteDate), 1)
End Function


Определение последнего дня месяца
Код

Function LastOfMonth(Optional dteDate As Date) As Date
'если параметр dteDate = 0 то для вычисления берется текущая дата
If CLng(dteDate) = 0 Then
dteDate = Date
End If
'Ищется первый день следующего месяца, и вычитается один день
LastOfMonth = DateSerial(Year(dteDate), Month(dteDate) + 1, 1) - 1
End Function


Определение первого дня следующего месяца
Код

Function FirstOfNextMonth(Optional dteDate As Date) As Date
If CLng(dteDate) = 0 Then
dteDate = Date
End If
FirstOfNextMonth = DateSerial(Year(dteDate), Month(dteDate) + 1, 1)
End Function


Определение последнего дня следующего месяца
Код

Function LastOfNextMonth(Optional dteDate As Date) As Date
If CLng(dteDate) = 0 Then
dteDate = Date
End If
LastOfNextMonth = DateSerial(Year(dteDate), Month(dteDate) + 2, 0)
End Function


Определение первого дня предыдущего месяца
Код

Function FirstOfPreviousMonth(Optional dteDate As Date) As Date
If CLng(dteDate) = 0 Then
dteDate = Date
End If
FirstOfPreviousMonth = DateSerial(Year(dteDate), Month(dteDate) - 1, 1)
End Function


Определение последнего дня предыдущего месяца
Код

Function LastOfPreviousMonth(Optional dteDate As Date) As Date
If CLng(dteDate) = 0 Then
dteDate = Date
End If
LastOfPreviousMonth = DateSerial(Year(dteDate), Month(dteDate), 0)
End Function


Определение первого дня текущей недели
Код

Function StartOfWeek(D As Variant, Optional FirstWeekday As Integer) As Variant '
'Пример: MsgBox StartOfWeek(Date)
If IsMissing(FirstWeekday) Then 'Sunday is the assumed first day of week.
StartOfWeek = D - Weekday(D) + 1
Else
StartOfWeek = D - Weekday(D, FirstWeekday) + 1
End If
End Function


Определение последнего дня текущей недели
Код

Function EndOfWeek(D As Variant, Optional FirstWeekday As Integer) As Variant
'Пример: MsgBox EndOfWeek(Date)
If IsMissing(FirstWeekday) Then 'Sunday is the assumed first day of week.
EndOfWeek = D - Weekday(D) + 7
Else
EndOfWeek = D - Weekday(D, FirstWeekday) + 7
End If
End Function


Опредение номера дня в году (2 января = 2, 3 февраля = 34)
Код

Function DayOfYear(Optional dteDate As Date) As Long
If CLng(dteDate) = 0 Then
dteDate = Date
End If
DayOfYear = Abs(DateDiff("d", dteDate, DateSerial(Year(dteDate) - 1, 12, 31)))
End Function


Данная функция определяет: рабочий день или нет
Примечание: Дни с понедельника по пятницу считаются рабочими

Код

Function IsWorkday(Optional dteDate As Date) As Boolean
If CLng(dteDate) = 0 Then
dteDate = Date
End If
Select Case Weekday(dteDate)
Case vbMonday To vbFriday
IsWorkday = True
Case Else
IsWorkday = False
End Select
End Function


Функция возвращает последний рабочий день в текущем месяце (Понедельник-Пятница)
Код

Function LastBusDay(D As Variant) As Variant
'Пример: MsgBox LastBusDay(Date)
Dim D2 As Variant
If VarType(D) <> 7 Then
LastBusDay = Null
Else
D2 = DateSerial(Year(D), Month(D) + 1, 0)
Do While Weekday(D2) = 1 Or Weekday(D2) = 7
D2 = D2 - 1
Loop
LastBusDay = D2
End If
End Function


Функция определения полных лет со дня рождения
Код

Function CalcAge(dteBirthdate As Date) As Long
'В качестве параметра dteBirthdate необходимо задать дату рождения
'Пример: MsgBox CalcAge("09/03/75")
Dim lngAge As Long
If Not IsDate(dteBirthdate) Then
dteBirthdate = Date
End If
'Проверить, чтобы в качестве входного параметра не была задана дата в будущем
If dteBirthdate > Date Then
dteBirthdate = Date
End If
'Подсчет разницы в годях между текущей датой и датой рождения
lngAge = DateDiff("yyyy", dteBirthdate, Date)
'Вычитается один год, если в этом году дня рождения еще не было
If DateSerial(Year(Date), Month(dteBirthdate), Day(dteBirthdate)) > Date Then
lngAge = lngAge - 1
End If
CalcAge = lngAge
End Function


Вычисление разницы в годах между двумя датами
Естественно, что значение Bdate должно быть меньше параметра DateToday
Код

Function Age(Bdate, DateToday) As Integer
If Month(DateToday) < Month(Bdate) Or (Month(DateToday) = Month(Bdate) And Day(DateToday) < Day(Bdate)) Then
Age = Year(DateToday) - Year(Bdate) - 1
Else
Age = Year(DateToday) - Year(Bdate)
End If
End Function


Определение високосности года
Код

Function LeapYear(YYYY As Integer) As Integer
'Функция возвращает -1, если указанный входной параметр (год) является високосным
'Пример: MsgBox LeapYear(1996)
LeapYear = YYYY Mod 4 = 0 And (YYYY Mod 100 <> 0 Or YYYY Mod 400 = 0)
End Function

Function LeapYear2(YYYY As Integer) As Integer
'Функция возвращает -1, если указанный входной параметр (год) является високосным
'Пример: MsgBox LeapYear(1996)
LeapYear2 = Month(DateSerial(YYYY, 2, 29)) = 2
End Function

Function IsLeapYear(DateIn As Date) As Boolean
'Функция возвращает True, если год в указанной дате является високосным
'Проверка: MsgBox IsLeapYear("01/01/00")
If IsDate("29/02/" & Format(DateIn, "yyyy")) = True Then
IsLeapYear = True
End If
End Function


Это сообщение отредактировал(а) M.E.G.U.S - 16.12.2005, 02:21


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.