Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение формата года / 9 сообщений из 9, страница 1 из 1
29.05.2006, 09:49
    #33757394
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение формата года
Как определить программно текущую настройку даты в Windows?
dd.MM.yyyy или dd.MM.yy ?
Может есть WinAPI функция?
Спасибо.
...
Рейтинг: 0 / 0
29.05.2006, 09:52
    #33757403
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение формата года
Если SET("CENTURY ")="ON", то год 4 цифры.
...
Рейтинг: 0 / 0
29.05.2006, 10:08
    #33757439
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение формата года
Код: plaintext
set century on 
стоит, но меня интересует настройка региональных стандартов в Панели инструментов, если там на машинах стоят разные форматы? - тогда год формируется неверно.
...
Рейтинг: 0 / 0
29.05.2006, 10:12
    #33757450
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение формата года
Если ты хочешь чтобы формат даты был таким же как в региональных настройках Windows, то дай команду SET SYSFORMATS ON
...
Рейтинг: 0 / 0
29.05.2006, 10:37
    #33757529
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение формата года
выдержка из селекта:
Код: plaintext
SUBSTR(DTOC(sfohead.sfoh_date), 1 , 2 )+SUBSTR(DTOC(sfohead.sfoh_date), 4 , 2 )+SUBSTR(DTOC(sfohead.sfoh_date), 7 , 2 ) as Datav

1. Размерность поля Date таблицы Sfohead D(8)
2. При кратком формате даты в региональных настройках Datav=010106 (01.01.06 - просто точки не нужны)
2. установка SET SYSFORMATS OFF ; SET CENTURY OFF
3. При полном формате даты в региональных настройках Datav=010120, т.е. год получается 2006, а ведь я беру из таблицы и не использую настройки Windows
...
Рейтинг: 0 / 0
29.05.2006, 10:45
    #33757563
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение формата года
А для чего весь сыр бор то затеян. Что за страсть с датой работать в текстовом виде? Для чего? Просто показать? Так винда вместе с фоксом и так ее покажут в соответствии с настройками винды или фокса в зависимости от set sysformat. Поставишь ON - будет как в винде и ничего нигде определять не надо.
...
Рейтинг: 0 / 0
29.05.2006, 10:59
    #33757596
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение формата года
Такова постановка задачи - поле DATAV д/б текстовым
сделал через YEAR()
Код: plaintext
SUBSTR(STR(YEAR(sfohead.sfoh_date)), 9 , 2 )
...
Рейтинг: 0 / 0
29.05.2006, 11:23
    #33757663
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение формата года
Опять не понял. Вот это:

Код: plaintext
SUBSTR(STR(YEAR(sfohead.sfoh_date)), 9 , 2 )

Если нужны две последних цыфры года, то может лучше вот так:

Код: plaintext
RIGHt(STR(YEAR(sfohead.sfoh_date)), 2 )
?
...
Рейтинг: 0 / 0
29.05.2006, 12:00
    #33757748
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение формата года
Для конвертации в строку используй функцию

Код: plaintext
DTOS(MyDate)

На конце именно буква "S", а не "C". В этом случае, вне зависимости от текущих форматов даты будет получена строка вида

ГГГГММДД

Т.е. сначала 4 цифры года, потом 2 цифры месяца и в конце 2 цифры дня.

Для обратного преобразования в формат даты используй функцию Date()

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
LOCAL ldDate, lcDate
ldDate = Date()
?"m.ldDate=",m.ldDate

lcDate = DTOS(m.ldDate)
?"m.lcDate=",m.lcDate

ldDate = Date(VAL(LEFT(m.lcDate, 4 )),;
		VAL(SubStr(m.lcDate, 5 , 2 )),;
		VAL(RIGHT(m.lcDate, 2 )))
?"m.ldDate=",m.ldDate
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение формата года / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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