Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Помогите разобраться с фунциями даты Добавлено: 27.12.05 18:13  

Автор вопроса:  Stas
Есть такая задача:
"Научный сотрудник забыл точную дату конференции, на которой ему необходимо присутствовать, но помнит, что она должна начаться в четверг в период с 1 по 8 октября 2004 года. Помогите ему определить точную дату начала конференции"
Вот сталкнулся с проблемой следущего рода:сделал цикл, где проверял WeekDay, но VB'ку не нравится такая запись:
"i/10/2004" Вопросик как мне в дату поставить переменную велечину?
Заранее благодарен!

Ответить

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

Номер ответа: 1
Автор ответа:
 вячеслав



Вопросов: 3
Ответов: 14
 Профиль | | #1 Добавлено: 27.12.05 18:21
MonthView1.Day = i не получается?

Ответить

Номер ответа: 2
Автор ответа:
 Stas



Вопросов: 1
Ответов: 2
 Профиль | | #2 Добавлено: 27.12.05 23:38
Можно немного поподробней?
А что за функция MonthView1.Day?

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 28.12.05 02:16
"i/10/2004"

я так понимаю в переменной i должно быть некое число, чисто в этом ввиде ему и не должно нравится...

Ответить

Номер ответа: 4
Автор ответа:
 вячеслав



Вопросов: 3
Ответов: 14
 Профиль | | #4 Добавлено: 28.12.05 10:23
Посмотри тут :http://beginning.ru/libvisualbasic/svisualbasibig/Chapte8/Ch55.htm
Не особо подробно, но...

Ответить

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



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #5
Добавлено: 28.12.05 11:29
>"i/10/2004" Вопросик как мне в дату поставить переменную велечину?
Просто прибавляй i к дате:
weekday(datevalue("1.10.2004";) + i)

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #6 Добавлено: 28.12.05 12:06
Лучше избегать прямого суммирования и неявного преобразования даты - можно напороться на локалю.

Dim i As Long
For i = 1 To 8
If Weekday(DateSerial(2004, 10, i), vbSunday) = vbThursday Then
    MsgBox DateSerial(2004, 10, i)
End If
Next i

Ответить

Номер ответа: 7
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #7 Добавлено: 28.12.05 12:18
Дата у тебя задана как строка? А переменная - как лонг? Тогда попытка вставить в строку лонг - не лучшая мысль. Можно сделать так: дату задавать как положено: As Date.

    Dim d As Date
    d = "1.10.2004"
    Do While Weekday(d) <> 5
        d = d + 1
    Loop
    MsgBox d


Сравнивается с 5, т.к. четверг - это пятый день недели по-американски (янки думают, что у всех неделя начинается в воскресенье)

Ответить

Номер ответа: 8
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #8 Добавлено: 28.12.05 12:25
В свете предложенной LamerOnLine поправки на локаль, можно сделать так:

    Dim d As Date
    d = DateSerial(2005, 12, 1)
    Do While Weekday(d) <> 5
        d = d + 1
    Loop
    MsgBox d

Ответить

Номер ответа: 9
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #9 Добавлено: 28.12.05 12:29
Дата у тебя задана как строка? А переменная - как лонг? Тогда попытка вставить в строку лонг - не лучшая мысль.

Ты это о чем? Да, переменная - лонг, но дата не строка. Дата корректно собирается DateSerial.
Или ты это 2Sur?

Ответить

Номер ответа: 10
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #10 Добавлено: 28.12.05 12:56
Это я отвечал автору, а тут провайдер завис, и ты успел вклиниться, получилось, что как будто тебе отвечал :)

Ответить

Номер ответа: 11
Автор ответа:
 Stas



Вопросов: 1
Ответов: 2
 Профиль | | #11 Добавлено: 28.12.05 20:04

Ребята всем вам большое спасибо! Всё доступно объяснили! С темой этой разобрался! Спасибо!

Ответить

Страница: 1 |

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



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