powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с датами
12 сообщений из 12, страница 1 из 1
Работа с датами
    #35396895
Orchid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кто знает, подскажите плиз)
Командой DateAdd прибавляю один час к определенной дате. Все проходит нормально, но когда дело доходит до 23:00, т.е времени перехода на новый день, возвращает следующее число, но без времени.
Например: Прибавляем к 2008-06-26 23:00:00 и получаем 2008-06-27.
Может кто сталкивался?
...
Рейтинг: 0 / 0
Работа с датами
    #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
Работа с датами
    #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
Работа с датами
    #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
Работа с датами
    #35397586
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DateAdd работает правильно.
Но он работает с типом Date .
Вот проверьте
Код: plaintext
1.
Debug.Print DateAdd("h",  5 , Now)
.

...
Рейтинг: 0 / 0
Работа с датами
    #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
Работа с датами
    #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
Работа с датами
    #35397922
Orchid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз извиняюсь) В этой строке так
авторEndDate = DateAdd("h", 1, BeginDate)
...
Рейтинг: 0 / 0
Работа с датами
    #35397959
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для преобразования используйте вот эти функции :
DateSerial
TimeSerial .

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


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