Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с датами / 12 сообщений из 12, страница 1 из 1
26.06.2008, 15:39
    #35396895
Orchid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
Если кто знает, подскажите плиз)
Командой DateAdd прибавляю один час к определенной дате. Все проходит нормально, но когда дело доходит до 23:00, т.е времени перехода на новый день, возвращает следующее число, но без времени.
Например: Прибавляем к 2008-06-26 23:00:00 и получаем 2008-06-27.
Может кто сталкивался?
...
Рейтинг: 0 / 0
26.06.2008, 15:54
    #35396955
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
Код: plaintext
1.
2.
3.
    Dim dttm  As Date
    dttm = # 6 / 26 / 2008   11 : 00 : 00  PM#
    
    MsgBox Format(DateAdd("h",  1 , dttm), "mm/dd/yyyy hh:mm:ss")
...
Рейтинг: 0 / 0
26.06.2008, 16:40
    #35397112
Orchid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
А так почему не получается? Привожу кусок

авторDim BeginDate As Date
Dim EndDate As Date

BeginDate = Str(Main.Calendar1.Year) + "-" + Str(Main.Calendar1.Month) + "-" + Str(Main.Calendar1.Day)
timeB = "07:00:00"
BeginDate = CStr(BeginDateN) + " " + CStr(timeB)
EndDate = DateAdd("h", 1, BeginDateN)
EndDate = Format(EndDate, "yyyy-mm-dd hh:mm:ss")
...
Рейтинг: 0 / 0
26.06.2008, 16:54
    #35397160
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
Бред полный. Объявляешь BeginDate как дату
Код: plaintext
Dim BeginDate As Date
Потом присваиваешь ей строку!
Код: plaintext
BeginDate = Str(Main.Calendar1.Year) + "-" + Str(Main.Calendar1.Month) + "-" + Str(Main.Calendar1.Day)
Потом еще раз и вообще неизвестно что.
Код: plaintext
1.
BeginDate = CStr(BeginDateN) + " " + CStr(timeB)
EndDate = DateAdd("h",  1 , BeginDateN)
BeginDateN - это что???
...
Рейтинг: 0 / 0
26.06.2008, 20:00
    #35397586
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
DateAdd работает правильно.
Но он работает с типом Date .
Вот проверьте
Код: plaintext
1.
Debug.Print DateAdd("h",  5 , Now)
.

...
Рейтинг: 0 / 0
27.06.2008, 08:41
    #35397910
Orchid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
Я понимаю, что DateAdd работает правильно) Объясняю, почему получился этот "бред". По-другому не смогла)
Просто мне нужно отталкиваться не от текущего времени. Пользователь через календарь выбирает нужную дату . Далее выбирает смену - в зависимости от этого к выбранной дате нужно добавить 7:00:00, либо 15:00:00, либо 23:00:00 - это время начала выборки. И далее к выбранной дате прибавлять по одному часу, т.е выборка с 23:00 - 00:00:00, потом с 00:00:00-1:00:00 и т.д.
Как мне поступать в этом случае?
...
Рейтинг: 0 / 0
27.06.2008, 08:48
    #35397918
Orchid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
Упс, немного ошиблась), у меня вот так:
авторDim BeginDateN As Date
Dim EndDate As Date
Dim BeginDate As Date
Dim timeB As Date

BeginDateN = Str(Main.Calendar1.Year) + "-" + Str(Main.Calendar1.Month) + "-" + Str(Main.Calendar1.Day)
timeB = "07:00:00"
BeginDate = CStr(BeginDateN) + " " + CStr(timeB)
EndDate = DateAdd("h", 1, BeginDateN)
EndDate = Format(EndDate, "yyyy-mm-dd hh:mm:ss")

BeginDate - это дата и время начала выборки
End date - дата и время окончания выборки
BeginDateN - дата, выбранная пользователем из календаря
...
Рейтинг: 0 / 0
27.06.2008, 08:51
    #35397922
Orchid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
Еще раз извиняюсь) В этой строке так
авторEndDate = DateAdd("h", 1, BeginDate)
...
Рейтинг: 0 / 0
27.06.2008, 09:20
    #35397959
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
Для преобразования используйте вот эти функции :
DateSerial
TimeSerial .

...
Рейтинг: 0 / 0
27.06.2008, 13:13
    #35398646
Orchid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
Всем спасибо, все выяснилось. Оказалось, что все прибавляется нормально, просто 00:00:00 почему-то не отображается, отбражается только дата без времени. Видимо полночь по-умолчанию не прописывыется.
А если прибавлять час не к 23:00:00, а, к примеру, к 23:00:01, то получаем 00:00:01. Я использую VB в Exel, может и поэтому.
Уф, сама запуталась в своих объяснениях...
...
Рейтинг: 0 / 0
27.06.2008, 15:14
    #35399042
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
Что-то я не понял, почему мой пример с форматированием не устроил автора.
...
Рейтинг: 0 / 0
27.06.2008, 15:43
    #35399122
Orchid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с датами
авторЧто-то я не понял, почему мой пример с форматированием не устроил автора.
Да дело не в том, что не устроил. Как оказалось, проблема была не в форматировании. Ваш пример на тот момент тоже опробовала - был тот же результат.
автор
Бред полный. Объявляешь BeginDate как дату
...
Потом присваиваешь ей строку!
Так лучше?
Код: plaintext
BeginDate = DateValue(BeginDateN) + TimeValue(timeB)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с датами / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]