powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразование даты (число дней в число полных месяцев и дней)
14 сообщений из 14, страница 1 из 1
Преобразование даты (число дней в число полных месяцев и дней)
    #32362311
Вопрос: я недавно заморочку встретил: как посчитать количество дней между двумя датами. Нашел: есть встроенная функция, которая дает количество дней = DateDiff ("d",[Date1], [Date2]).
Но меня жутко обламали: оказывается с 15/07/08 по 15/08/08 проходит всего 30 дней (ну так они считают, пусть в месяце будет 30 дней), а на самом деле эта функция считает, что 31. Вот и думаю, теперь, как 133 дня с 13/08/03 по 24/12/03 превратить в 4 мес. 11 дней.
Может есть идейки, а?
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362322
в месяце надо считать зо дней, однако сколько дней между 15/07/08 по 15/09/08 - не важно. Важно, только то, что там - 2 месяца.
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362332
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Але, гараж?
Первый аргумент у функции DateDiff совсем проспал?
Вычисли разницу в месяцах, и домножь на сколько хочешь. Пусть у них хоть по 19 дней в месяце будет.
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362335
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таже функция с первым параметром "m" - DateDiff ("m",[Date1], [Date2]) - даст количество месяцев.
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362350
че-то не пойму я "про первй аргумент DateDıff"
вот синтаксис согласно справке:
=DateDiff("d", [OrderDate], [ShippedDate]) Uses the DateDiff function to display the variance in days between the values of the OrderDate and ShippedDate fields .
Соответственно, поменяв d на m мы получим разницу в целых месяцах , совершенно верно, а только где оставшиеся дни взять-то?
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362353
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давно известная проблема вот решение (имхо очень и очень)\r
Отсюда /topic/43001&hl=datediff\r
\r
Хам трамвайный \r
Member \r
\r
если тебе \r
нужжен возраст \r
посчитать \r
то табе \r
DateDiff("yyyy",dtmBD, date())+(date()<dateserial(year(date()),month(dtmBD),day(dtmBD)))\r
\r
Думаю аналогично с месяцами не сложно будет написать.
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362362
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а только где оставшиеся дни взять-то?
Посчитать. С помощью функции DateAdd добавить к начальной дате нужное количество месяцев (нормальных). Потом найти разницу (в днях) между конечной датой и посчитаной.
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362368
Оба-на! Это уже что-то! Попробую, дружище...... э...э... как-то, прям,неудобно.....
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362495
вот что получается: например
с 16/06/03 по 13/08/03 будет месяцев:2 дней:3
с 13/08/03 по 20/10/03 будет месяцев:2 дней:-7

как лучше поступить дальше: развивать геморрой дальше: например, если число дней-положительное, то от числа месяцев отнимаем 1, а от 30 отнимаем 3 получаем 27 дней.
или есть более простые альтернативы?
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362807
Сделал следующее:
Working Days: DateDiff("d",[D1],[D2])- разница в днях между двумя датами
Working: DateDiff("m",[D1],[D2])- разница в месяцах....
Pro: DateAdd("m",[Working],[D1]) к Дате1 прибавлено число полных месяцев до Даты2
res: DateDiff("d",[Pro],[D2]) разница в днях между этими двумя датами.

получил следующее: 16/06/03-13/08/03 = 2 месяца (-3) дня, т.е. 1 мес. (30-3) дней
16/06/03-23/12/03 = 6 месяцев 7 дней

т.е. если d первой даты больше d второй даты - появляется геморрой. Как от этого избавиться?
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362845
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
появляется геморрой. Как от этого избавиться?
Нет, ну ты думаешь мы тут все сертифицированные проктологи что ли?
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32362918
res1: IIf([res]<0,(30-((-1)*[res])),[res])
mon: IIf([res]<0,([Working]-1),[Working])

неуклюже, зато РАБОТАЕТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
правда одно НО: если разница <0 надо условий бы еще добавить, но это уже лучше :)
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32363040
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ведь и ссыслку уже дал и пример, неужели нужно готовое решение дать чтобы дошло.

1. Подсчет полных лет между датами d_beg и d_end (включая конечную дату)
dim ld_end as Date
ld_end=d_end+1
li_diff = DateDiff("yyyy", d_beg, ld_end) + (ld_end < DateSerial(Year(ld_end), Month(d_beg), Day(d_beg)))

2. Подсчет полных месяцев (включая конечную дату)
dim ld_end as Date
ld_end=d_end+1
li_diff = DateDiff("m", d_beg, ld_end) + (ld_end < DateSerial(Year(ld_end), Month(ld_end), Day(d_beg)))
...
Рейтинг: 0 / 0
Преобразование даты (число дней в число полных месяцев и дней)
    #32363083
спасибо, Дружище за совет.
я просто не силен, ну не силен и все, и твой совет и пример показался мне сложным, поэтому придумал свой (не без геморроя и все-таки потревожив участников форума пару раз :).
Но цель достигнута - считает!
Как говорит хоккеист Козлов "Мне по %№" как шайба залетает в ворота: щелчком, броском, рекошетом о конька - главное мне за это платят :)

За отзывы и помощь благодарю всех!
Всех с Наступающим!
И да будет Вам СчастьиЕ!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразование даты (число дней в число полных месяцев и дней)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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