Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / а как кто делает inc/dec на месяц в дате? / 10 сообщений из 10, страница 1 из 1
23.11.2004, 13:10
    #32795789
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как кто делает inc/dec на месяц в дате?
в досовой фоксе я писал две своих функции addmonth и decmonth, в которую передавал дату, а возвращалась дата увеличенная или уменьшенная на 1 месяц, на первое число, те из 10.09.2004 получалось 01.10.2004 или 01.08.2004. функция работала путем добавления или отнимания 1 в цикле.

в хелповом списке среди всяческих фукций ничего подобного я не нашел, что, никому не требуется или как-то можно умнее это делать?
...
Рейтинг: 0 / 0
23.11.2004, 13:14
    #32795803
а как кто делает inc/dec на месяц в дате?
GOMONTH(dExpression | tExpression, nNumberOfMonths)
...
Рейтинг: 0 / 0
23.11.2004, 13:18
    #32795817
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как кто делает inc/dec на месяц в дате?
Кстати, GOMONTH есть в FPD26
...
Рейтинг: 0 / 0
23.11.2004, 15:29
    #32796260
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как кто делает inc/dec на месяц в дате?
спасибо!
действительно есть такая функция, и надо же, если сделать говмонс("31.01.2003",1) выдает 28.02.2003!!! правда жаль что не возвращает первое число нужной даты, но это ужо ньюансы... Главное что в хелпах не видел на нее see also, когда про датные функции читал.

А скажите, мож еще как-нить по-уму можно сравнить дату на совпадение по году и месяцу или только так вот
if month(date1)=month(date2) AND year(date1)=year(date2)
...
Рейтинг: 0 / 0
23.11.2004, 15:59
    #32796360
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как кто делает inc/dec на месяц в дате?
Еще несколько вариантов:

date1 - DAY(date1) = date2 - DAY(date2)

LEFT(DTOS(date1),6) = LEFT(DTOS(date2),6)

DTOS(date1) = LEFT(DTOS(date2),6) - поиск по фрагменту строки

* если date2 - это константа, то
BETWEEN(date1, date2 - DAY(date2) + 1, GOMONTH(date2 - DAY(date2) + 1,1))
...
Рейтинг: 0 / 0
23.11.2004, 17:21
    #32796674
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как кто делает inc/dec на месяц в дате?
А первый день месяца - это
Код: plaintext
date()-day(date())+ 1 
...
Рейтинг: 0 / 0
17.02.2005, 14:53
    #32921092
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как кто делает inc/dec на месяц в дате?
получается увеличение даты на месяц+ первое число делается в 2 прохода
date1=gomonth(date1,3)

date1=date1-day(date1)+1

или более громоздко, но в одну строчку, но с одним лишним исполнением gomonth(date1,3):

date1=gomonth(date1,3)-day(gomonth(date1,3))+1

или так, но с использованием кучи функций:

date1=ctod("01"+right(dtoс(gomonth(date1,3)),8)

инетересно, что обратной функции у DTOS нету...
...
Рейтинг: 0 / 0
17.02.2005, 14:58
    #32921106
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как кто делает inc/dec на месяц в дате?
не совсем обратная ctod()
хотя легким движением руки брюки превратяться в шорты
...
Рейтинг: 0 / 0
17.02.2005, 16:15
    #32921375
Redrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как кто делает inc/dec на месяц в дате?
to CTAC-KO
Лови файлO мылом... Надеюсь пригодится... ;-)
...
Рейтинг: 0 / 0
18.02.2005, 15:04
    #32923480
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как кто делает inc/dec на месяц в дате?
а я то файло дома словил, думаю, что за?
Ок, перенесу на работу, гляну - thanx anyway!!!

СПАСИБО!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / а как кто делает inc/dec на месяц в дате? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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