Я действительно подвергаю сомнению необходимость этого ...
Но из ILE RPG вы можете вызывать C функций ... эта, кажется, та, которую вы хотели бы ...
mktime () - конвертировать местное время
Если вы не знакомы с вызовом C функций из ILE RPG, здесь есть хорошая статья и даже рассматривается mktime (). Дополнение к собственной поддержке даты и времени RPG
Обратите внимание, что необходимые прототипы и определения структуры данных можно найти в библиотеке «System Includes», QSYSIN C, в исходном файле ILERPE ( QRPGLESR C) член "время" ... просто
/include QSYSINC/QRPGSRC,TIME
dcl-s myUnixTime like(time_t)
dcl-ds myTimeDs likeds(struct_tm)
//note: fill in myTimeDS here
myTimeDs.tm_min = 0;
// and so on...
myUnixTime = mktime(myTimeDs);
Если библиотека QSYSIN C отсутствует в вашей системе, попросите администратора установить option 13 - System Openness Includes
ОС (LICPGM 5770) -ss1)
В крайнем случае, вы можете использовать следующие выдержки ..
D time_t 10I 0 template
D struct_tm...
D DS QUALIFIED ALIGN
D TEMPLATE
// int tm_sec; /* seconds after the minute (0-61) */
// int tm_min; /* minutes after the hour (0-59) */
// int tm_hour; /* hours since midnight (0-23) */
// int tm_mday; /* day of the month (1-31) */
// int tm_mon; /* months since January (0-11) */
// int tm_year; /* years since 1900 */
// int tm_wday; /* days since Sunday (0-6) */
// int tm_yday; /* days since January 1 (0-365) */
// int tm_isdst; /* Daylight Saving Time flag */
D tm_sec 10I 0
D tm_min 10I 0
D tm_hour 10I 0
D tm_mday 10I 0
D tm_mon 10I 0
D tm_year 10I 0
D tm_wday 10I 0
D tm_yday 10I 0
D tm_isdst 10I 0
D mktime PR LIKE(time_t)
D EXTPROC('mktime')
D time LIKEDS(struct_tm)