Re: Date/Time conversions
- Posted by mattlewis (admin) Mar 26, 2012
- 1208 views
gbonvehi said...
Hi cp,
There are probably easier ways (and there are a few time routines in the archive). But I went ahead and wrapped your desired function. Here's the example code:
For fun, I've rewritten your code using the new (still experimental) memstruct facilities:
include std/memstruct/windows.e memstruct SYSTEMTIME WORD wYear WORD wMonth WORD wDayOfWeek WORD wDay WORD wHour WORD wMinute WORD wSecond WORD wMilliseconds end memstruct procedure populateSystemTime(atom systemTimePtr, sequence date) -- systemTimePtr: pointer to allocated memory -- date: {YYYY,MM,DD,HH,MM,SS} systemTimePtr.SYSTEMTIME.wYear = date[1] systemTimePtr.SYSTEMTIME.wMonth = date[2] systemTimePtr.SYSTEMTIME.wDayOfWeek = 0 systemTimePtr.SYSTEMTIME.wDay = 6 systemTimePtr.SYSTEMTIME.wHour = 8 systemTimePtr.SYSTEMTIME.wMinute = date[5] systemTimePtr.SYSTEMTIME.wSecond = date[6] systemTimePtr.SYSTEMTIME.wMilliseconds = 0 end procedure -- Parse the time from a SYSTEMTIME structure function getSystemTime(atom systemTimePtr) return { systemTimePtr.SYSTEMTIME.wYear, systemTimePtr.SYSTEMTIME.wMonth, systemTimePtr.SYSTEMTIME.wDay, systemTimePtr.SYSTEMTIME.wHour, systemTimePtr.SYSTEMTIME.wMinute, systemTimePtr.SYSTEMTIME.wSecond } end function -- These are pointers to SYSTEMTIME structures atom systemTimeInPtr = allocate( sizeof( SYSTEMTIME ) ) -- UTC time to be converted atom systemTimeOutPtr = allocate( sizeof( SYSTEMTIME ) ) -- GMT time resulting
Matt