powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение формата года
9 сообщений из 9, страница 1 из 1
Определение формата года
    #33757394
_Mikle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как определить программно текущую настройку даты в Windows?
dd.MM.yyyy или dd.MM.yy ?
Может есть WinAPI функция?
Спасибо.
...
Рейтинг: 0 / 0
Определение формата года
    #33757403
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если SET("CENTURY ")="ON", то год 4 цифры.
...
Рейтинг: 0 / 0
Определение формата года
    #33757439
_Mikle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
set century on 
стоит, но меня интересует настройка региональных стандартов в Панели инструментов, если там на машинах стоят разные форматы? - тогда год формируется неверно.
...
Рейтинг: 0 / 0
Определение формата года
    #33757450
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты хочешь чтобы формат даты был таким же как в региональных настройках Windows, то дай команду SET SYSFORMATS ON
...
Рейтинг: 0 / 0
Определение формата года
    #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
Определение формата года
    #33757563
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для чего весь сыр бор то затеян. Что за страсть с датой работать в текстовом виде? Для чего? Просто показать? Так винда вместе с фоксом и так ее покажут в соответствии с настройками винды или фокса в зависимости от set sysformat. Поставишь ON - будет как в винде и ничего нигде определять не надо.
...
Рейтинг: 0 / 0
Определение формата года
    #33757596
_Mikle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такова постановка задачи - поле DATAV д/б текстовым
сделал через YEAR()
Код: plaintext
SUBSTR(STR(YEAR(sfohead.sfoh_date)), 9 , 2 )
...
Рейтинг: 0 / 0
Определение формата года
    #33757663
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять не понял. Вот это:

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

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

Код: plaintext
RIGHt(STR(YEAR(sfohead.sfoh_date)), 2 )
?
...
Рейтинг: 0 / 0
Определение формата года
    #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
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение формата года
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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