Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Проблема с проверкой даты  [new]
dima_18
Member

Откуда:
Сообщений: 362
Здравствуйте всем!

Будьте добры подскажите пожалуйста ответ на следующий вопрос:
мне нужно определить по системной дате (текущей дате) какой сейчас квартал.

kid = date()


if (kid <{01.04.2011} and kid >={01.01.2011}
Thisform1.Label1.Caption.Value = "1 квартал"
endif

if (kid <{01.07.2011} and kid >={01.04.2011}
Thisform1.Label1.Caption.Value = "2 квартал"
endif

if (kid <{01.10.2011} and kid >={01.07.2011}
Thisform1.Label1.Caption.Value = "3 квартал"
endif

if (kid <{01.01.2012} and kid >={01.10.2011}
Thisform1.Label1.Caption.Value = "4 квартал"
endif

Возникает у меня следующие вопросы:

1.Я не правильно использую конструкцию if - синтаксис не верен, как я понимаю а как правильно подскажите пожалуйста сравнивать даты или проверку не так надо делать?

2. Если все же так можно подскажите пожалуйста как записывается вернее это и в конце надо пойти на первый квартал но уже нового года, а как это сделать?

спасибо большое заранее за помощь.
3 авг 11, 16:28    [11066031]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с проверкой даты  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
Thisform1.Label1.Caption.Value = IIF(MONTH(DATE()) < 4, "1", IIF(MONTH(DATE()) < 7, "2", IIF(MONTH(DATE()) < 10, "3", "4"))) + " квартал"
3 авг 11, 16:38    [11066113]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с проверкой даты  [new]
Dima T
Member

Откуда:
Сообщений: 15281
kid = date()
Thisform.Label1.Caption = str((MONTH(kid) + 1) / 3 , 1) + " квартал"
3 авг 11, 16:43    [11066159]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с проверкой даты  [new]
demon03
Guest
? STR(ceiling(MONTH(DATE())/3)) + " квартал"
3 авг 11, 16:55    [11066283]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с проверкой даты  [new]
demon03
Guest
? STR(ceiling(MONTH(DATE())/3)) + " квартал"
3 авг 11, 16:58    [11066312]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с проверкой даты  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Есть такая функция Quarter(), которая как раз и возвращает номер квартала

Thisform1.Label1.Caption.Value = Textmerge("<<Quarter(kid),2)>> квартал"

Для записи констант типа Date используется специальная нотация вида: {^YYYY-MM-DD}. В качестве разделителя фрагментов можно использовать также точку или наклонную черту (символ деления). В данном случае

if kid < {^2011-04-01} and kid >= {^2011-01-01}
3 авг 11, 17:15    [11066468]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с проверкой даты  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Ошибся в синтаксисе. Надо так

Thisform1.Label1.Caption.Value = Textmerge("<<Quarter(kid)>> квартал")
3 авг 11, 17:18    [11066505]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с проверкой даты  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
ВладимирМ
Ошибся в синтаксисе. Надо так

Thisform1.Label1.Caption[s].Value [/s]= Textmerge("<<Quarter(kid)>> квартал")
3 авг 11, 17:22    [11066551]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с проверкой даты  [new]
dima_18
Member

Откуда:
Сообщений: 362
Здравствуйте всем!

Большое спасибо за присланные ответы. Очень приятно, что много вариантов - сейчас я буду пробовать.

Еще раз большое спасибо за помощь!
4 авг 11, 10:29    [11068946]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить