Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Есть ли функция определения разницы двух дат в месяцах? / 8 сообщений из 8, страница 1 из 1
29.04.2011, 16:01
    #37240472
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли функция определения разницы двух дат в месяцах?
Есть ли функция определения разницы двух дат в месяцах?
Например имеем:
Код: plaintext
1.
2.
3.
a = { 01 / 05 / 2012 }
b = { 01 / 04 / 2011 }

my_func(mm, a, b)
и получаем 13 месяцев
...
Рейтинг: 0 / 0
29.04.2011, 16:06
    #37240494
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли функция определения разницы двух дат в месяцах?
вариант простого вычитания одной даты из другой и делением на 30 - не подходит
...
Рейтинг: 0 / 0
29.04.2011, 16:08
    #37240504
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли функция определения разницы двух дат в месяцах?
что-то типа того как в sql - datediff()
...
Рейтинг: 0 / 0
29.04.2011, 16:09
    #37240505
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли функция определения разницы двух дат в месяцах?
Переведи в месяцы и считай разницу:
Код: plaintext
month(a) + year(a) *  12 

Только тут все красиво если число 1-е, а что делать с такими сам решай:
Код: plaintext
1.
a = { 30 / 06 / 2011 }
b = { 30 / 05 / 2011 }
Код: plaintext
1.
a = { 30 / 05 / 2011 } && есть еще { 31 / 05 / 2011 }
b = { 30 / 04 / 2011 }
...
Рейтинг: 0 / 0
29.04.2011, 16:19
    #37240534
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли функция определения разницы двух дат в месяцах?
Эту проблему не раз обсуждали, решения разные могут быть, однозначно правильных - нет.
Поищи по форуму по словам "количество месяцев", "количество лет"
...
Рейтинг: 0 / 0
29.04.2011, 17:49
    #37240734
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли функция определения разницы двух дат в месяцах?
пасиба, но решил задачу иначе
так как у меня есть жесткая привязка к первому числу месяца, то я с помощью gomonth определяю эту разницу, а так как разницы между датами не по 500 лет и самих записей которые я так обрабатываю не миллиарды, то такой вариант меня устраивает :)
...
Рейтинг: 0 / 0
29.04.2011, 19:45
    #37240928
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли функция определения разницы двух дат в месяцах?
"В общем случае" задача решения не имеет. Возможны только частные (локальные) решения, если отдаете себе отчет, где именно будет погрешность. Например, та же DateDiff() работает по определенным правилам. Подробности по ссылке

Как получить разницу двух дат в формате: лет, месяцев, дней
...
Рейтинг: 0 / 0
30.04.2011, 22:10
    #37241682
Makrosa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли функция определения разницы двух дат в месяцах?
Dima TПереведи в месяцы и считай разницу:
Код: plaintext
month(a) + year(a) *  12 

Только тут все красиво если число 1-е, а что делать с такими сам решай:
Код: plaintext
1.
a = { 30 / 06 / 2011 }
b = { 30 / 05 / 2011 }
Код: plaintext
1.
a = { 30 / 05 / 2011 } && есть еще { 31 / 05 / 2011 }
b = { 30 / 04 / 2011 }


a1=DATE(YEAR(a),MONTH(a),1)
a2=GOMONTH(a1,1)-1
b1=DATE(YEAR(b),MONTH(b),1)
b2=GOMONTH(b1,1)-1
month(b1) + year(b1) * 12-(month(a1) + year(a1) * 12)+IIF(DAY(b2)-DAY(a2)>DAY(b1)-DAY(a1),0,1) && variant 1
month(b1) + year(b1) * 12-(month(a1) + year(a1) * 12)+IIF(DAY(b1)-DAY(a1)<0,0,1) && variant 2
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Есть ли функция определения разницы двух дат в месяцах? / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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