Страница: 1 |
Страница: 1 |
Вопрос: нужна помощь по работе с датой
Добавлено: 20.04.06 16:36
Автор вопроса: Сергей | ICQ: 238974223
Есть дата в формате: Год, Месяц, День. Как ее перевести в дни, то есть какое-то суммарное число дней?
Я знаю есть формула, которая учитывает - високосный год или нет, сколько дней в месяце...
Может кто занимался этим или имеет формулу или как-то иначе решал такую задачу - прошу помочь. Заранее брагодарен всем кто откликнется
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 20.04.06 18:17
Какое-то суммарное число дней с момента чего?
Ибо суммарное число дней имеет смысл в свете двух временных точек как минимум...
Номер ответа: 2
Автор ответа:
Сергей
ICQ: 238974223
Вопросов: 4
Ответов: 8
Профиль | | #2
Добавлено: 20.04.06 20:33
начало исчмсления не имеет значения.
Например такой формат: от года "Х" прошло 2 года, 10 месяцев, 13 дней.
Сколько это все (годы, дни, месяцы) будет в днях. Вот такой смысл.
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 20.04.06 20:47
для этих целей используют ф-ю DateDiff
Номер ответа: 4
Автор ответа:
Сергей
ICQ: 238974223
Вопросов: 4
Ответов: 8
Профиль | | #4
Добавлено: 20.04.06 20:52
что она делает ? где ее найти можно? есть ли эквивалентная ей математическая запись ?
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 20.04.06 23:33
Это стандартная функция из VB. Единственное, что она делает - возвращает разницу между 2 датами в указанных тобой еденицацах.. Наример от даты "Ч" до настоящего момента.. Возвращает количество лет, месяцев,недель, декад, часов, секунд и т.д... Учитывает высокосный год...
Боюсь, что врядли.. (имхо)
Номер ответа: 6
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #6
Добавлено: 20.04.06 23:39
В принципе если не лень, можно и самому написать.
Номер ответа: 7
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #7
Добавлено: 21.04.06 00:18
тоже вариант.. )
Номер ответа: 8
Автор ответа:
Temak
ICQ: 264-692-095
Вопросов: 4
Ответов: 24
Профиль | | #8
Добавлено: 21.04.06 00:49
http://www.vbnet.ru/vbguide/showfunction.asp?id=97
'числа дней между указанной и текущей датой
Dim TheDate As Date 'объявляет переменные
Dim Msg
TheDate = InputBox("Введите дату:"
Msg = "Разность (дней): " & DateDiff("д", Now, TheDate)
MsgBox Msg
Номер ответа: 9
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #9
Добавлено: 21.04.06 04:36
Например такой формат: от года "Х" прошло 2 года, 10 месяцев, 13 дней
Ты не понимаешь суть переменной Date.
Впрочем, если ты используешь её так, то
Номер ответа: 10
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #10
Добавлено: 21.04.06 04:41
Да, забыл сказать.
Поскольку Date и TimeSpan - вещи принципиально разные, то соответственно твои "2 года 10 месяцев 13 дней" в Date на самом деле означают не промежуток, а точку, причём из-за тех самых високосных годов и т.п. ты будешь неизбежно получать вылезающие/пропадающие дни.
Далее, вернёмся всё-таки к фразе "начало исчмсления не имеет значения". Неужели? То есть, 2 года от 1 января високосного года содержат то же количество дней, что и два года от 1 января невисокосного года? Или, два месяца от 1 февраля содержат столько же дней, сколько два месяца от 1 июля?
Всё же стоит вернуться к осознанию этого факта. И выбрать две точки на оси времени. После чего сделать msgbox(d1-d2) и получить разницу в днях.
Номер ответа: 11
Автор ответа:
Сергей
ICQ: 238974223
Вопросов: 4
Ответов: 8
Профиль | | #11
Добавлено: 21.04.06 10:11
Думаю надо пояснить момент связанный с моей фразой "Дата не имеет значения", а то много вопросов в связи с этим появилось.
Я имел в виду что дата точки начала отсчета может быть любой и ее величина может быть взята какая угодно. Например дата смерти любимого хомяка 12 января 1997 года. Или там еще какая-то дата.
Те 20 дней 10 месяцев и 5 лет от даты "Х" заданы в виде простых цифр, то есть это 3 переменных,а не одна типа Date. В общем то я расчитывал на математические решения этой задачи.
А теперь смотрю есть и функции для этого. Прекрасно.
Спасибо всем за помощь.
Номер ответа: 12
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #12
Добавлено: 21.04.06 12:45
Функция.
Одна.
Причём не та, что была озвучена.
Номер ответа: 13
Автор ответа:
Сергей
ICQ: 238974223
Вопросов: 4
Ответов: 8
Профиль | | #13
Добавлено: 21.04.06 14:20
Пригодилась и dateAdd() и Datediff(). Все прекрасно работает... вот что значит с профессиональными знающими людьми поговорить. Не знал до этого про эти функции (наверно потому что не нужны были )