Сообщение от yante
Посмотреть сообщение
Объявление
Свернуть
Пока нет объявлений.
Проект "Сведения о застрахованных лицах" СЗВ-М
Свернуть
X
-
DateTime Data TypeСообщение от Rak Посмотреть сообщениеПомогите пожалуйста. Не могу понять структуру АФ:ДатаВремя.
Где она описана?
Есть ли такая функция в VisualFoxpro?
http://www.w3schools.com/Xml/schema_dtypes_date.asp
Насчёт VFP не подскажу, единственная возможная проблема - узнать TimeZone. В Windows API функция
GetTimeZoneInformation
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspxПоследний раз редактировалось Inovet; 13.03.2016, 11:29.
-
Спасибо
0
Комментарий
-
-
У меня пока так (сойдет для любого Foxpro):Сообщение от Rak Посмотреть сообщениеПомогите пожалуйста. Не могу понять структуру АФ:ДатаВремя.
Где она описана?
Есть ли такая функция в VisualFoxpro?
cCurDate=DTOS(DATE())
cCurDateCur=LEFT(cCurDate,4)+[-]+SUBSTR(cCurDate,5,2)+[-]+RIGHT(cCurDate,2)
cTime=TIME()
nSdvig=5 && Сдвиг по Гринвичу в Челябинске (можно передать параметром в функцию)
cSdvig=TRANS(nSdvig,[@L 99])+[:00]
nTimeH=VAL(LEFT(cTime,2))-nSdvig
IF nTimeH<0
nTimeH=1
ENDIF
cTimeH=TRANS(nTimeH,[@L 99])
cTimeGr=cTimeH+SUBSTR(cTime,3,6) && По Гринвичу
cDateTime=cCurDateCur+[T]+cTimeGr+[+]+cSdvig
RETURN(cDateTime) && это, если объявить функцию
Удачи!
-
Спасибо
0
Комментарий
-
-
Это вопрос часового пояса, тут и операционка может наврать. У Вас приложение распространено по разным часовым поясам? Тогда пихайте "сдвиг" в настройкуСообщение от Rak Посмотреть сообщениеnSdvig=5 && Сдвиг по Гринвичу в Челябинске (можно передать параметром в функцию)
Как бы этот сдвиг зацепить в VFP ?
Хотя выкопали и такую ф-ю API_GetDateTimeUTC()
И тоже нет гарантии (я вот эпизодически в своем компе поправляю время). Другое дело - а кому оно надо? А если программа наврет с DateTime на пару часов, наверное какой-нить пенсионер незаконно обогатится индексацией?
На пустом месте изобретаем проблемы...
-
Спасибо
0
Комментарий
-
-
Я думаю, у них не изобретение проблем, а просто взяли стандартный тип DateTime, а в нём есть этот самый сдвиг, который вроде бы и не обязательная часть, но вот оставили, чтобы было. По сути, время отчёта будет зафиксировано по факту передачи по каналам связи. Или я что-то недопонимаю.
-
Спасибо
0
Комментарий
-
-
Время составления в любом случае не будет равным времени передачи. И смысл указания времени в этом файле спорный. Но, раз уж сказано ставить - мы не жадные, поставим.Сообщение от Inovet Посмотреть сообщениеЯ думаю, у них не изобретение проблем, а просто взяли стандартный тип DateTime, а в нём есть этот самый сдвиг, который вроде бы и не обязательная часть, но вот оставили, чтобы было. По сути, время отчёта будет зафиксировано по факту передачи по каналам связи. Или я что-то недопонимаю.
-
Спасибо
0
Комментарий
-
-
Вообще-то за такой код из рогатки убивать нужноСообщение от Леонид Николаевич Посмотреть сообщениеУ меня пока так (сойдет для любого Foxpro):
cCurDateCur=transform(DTOS(DATE()), [@R 9999-99-99])Сообщение от Леонид Николаевич Посмотреть сообщениеcCurDate=DTOS(DATE())
cCurDateCur=LEFT(cCurDate,4)+[-]+SUBSTR(cCurDate,5,2)+[-]+RIGHT(cCurDate,2)
А почему именно 1 ? а не 2 или 3 ?Сообщение от Леонид Николаевич Посмотреть сообщениеIF nTimeH<0
nTimeH=1
ENDIF
Фальсификацией занимаемся или не умеем правильно перейти на предыдущие сутки?
Значение возвращается всегда, без разницы - объявляется функция или процедура.Сообщение от Леонид Николаевич Посмотреть сообщение&& это, если объявить функцию
-
Спасибо
0
Комментарий
-
-
Вот же-ж знал, что какой-нить пытливый ум прицепитсяСообщение от vk65 Посмотреть сообщениеА почему именно 1 ? а не 2 или 3 ?
Фальсификацией занимаемся или не умеем правильно перейти на предыдущие сутки?
Да, потому, что, как выше я сказал, эта "ловля блох" ни о чем...
Все равно это будет фальсификацией, т.к. никого не должно волновать время создания файла в пользовательской программе - это и есть фальсификация... Наверное играет какую-то роль время передачи файла. Это как, если вовремя заполнить годовую декларацию (с проставленной датой заполнения), а сдать ее летом.
А за подсказку с [@R 9999-99-99] спасибо, не догадался бы, что с DTOS() такое сработает! Проверил, получается, что:
transform(DTOS(DATE()), [@R 9999-99-99]) и
transform(VAL(DTOS(DATE())), [@R 9999-99-99])
выводят одно и тоже
-
Спасибо
0
Комментарий
-
-
Я правильно понял, что вы выводите время по гринвичу + сдвиг?Сообщение от Леонид Николаевич Посмотреть сообщениеcTimeGr=cTimeH+SUBSTR(cTime,3,6) && По Гринвичу
cDateTime=cCurDateCur+[T]+cTimeGr+[+]+cSdvig
Вроде как надо выводить локальное время + сдвиг...
Ну т.е. первично "местное" время.
Если кого-то интересует сравнение с другими часовыми поясами - используется указанный сдвиг для приведения к Гринвичу...
Во всяком случае стандартные функции работы со временем в .Net Framework работают именно так. Ну т.е. если я и ошибаюсь, то вместе с Microsoft
-
Спасибо
0
Комментарий
-
-
самоделкаСообщение от VRALD Посмотреть сообщениеКоллеги, у кого есть форма СЗВ-М в формате Excel?
Вложения
-
Спасибо
0
Комментарий
-
реклама
Свернуть

Комментарий