/***************************************************************************************
**
** P R O C E D U R E
** -----------------
**
** File: general/datetime.p
**
** Author: Chris Paulson
**
** Date: 22-May-02
**
** Description: Given a format convert a string into a date/time
**
** Mod history:
**
***************************************************************************************/
/************************************* Parameters *************************************/
define input param pString as char no-undo.
define input param pFormat as char no-undo.
define output param pDateTime as decimal no-undo.
define output param pError as char no-undo.
/************************************* Scope Defines **********************************/
/************************************* Includes ***************************************/
/************************************* Shared *****************************************/
/************************************* Vars *******************************************/
define var vold as char no-undo.
define var vDateLength as int no-undo.
define var vDate as char no-undo.
define var vDateFormat as char no-undo.
define var vTime as char no-undo.
define var vDateValue as date no-undo.
define var vTimeValue as integer no-undo.
/************************************* Widgets ****************************************/
/************************************* Frame ******************************************/
/************************************* Triggers ***************************************/
/************************************* Main *******************************************/
vold = session:date-format.
run GetDateFormat( pFormat, output vDateFormat ).
vDate = substring( pString, 1, length(vDateFormat)).
vDateFormat = replace( vDateFormat, "CC", "YY" ).
vDateFormat = replace( vDateFormat, "YY", "Y" ).
vDateFormat = replace( vDateFormat, "YY", "Y" ).
vDateFormat = replace( vDateFormat, "MM", "M" ).
vDateFormat = replace( vDateFormat, "DD", "D" ).
session:date-format = vDateFormat.
vDateValue = date( vDate ) no-error.
if error-status:error then do:
pError = error-status:get-message(1).
return.
end.
vTime = replace(pString, vDate, "").
run general/time2int.p( vTime, output vTimeValue ).
if return-value = "bad":u then do:
pError = "Invalid time".
return.
end.
pdateTime = vDateValue - 01/01/0001 + (vtimeValue / 100000).
session:date-format = vOld.
/************************************* Procedures *************************************/
/***************************************************************************************
**
** Procedure: getDateFormat
**
** Description:
**
***************************************************************************************/
procedure getDateFormat:
/************************************* Parameters *************************************/
define input param pString as char no-undo.
define output param pDate as char no-undo.
/************************************* Vars *******************************************/
/************************************* Widgets ****************************************/
/************************************* Frame ******************************************/
/************************************* Triggers****************************************/
/************************************* Main *******************************************/
pDate = replace( pString, ":", "" ).
pDate = replace( pDate, "HHMM", "" ).
pDate = replace( pDate, "SS", "" ).
end.
/************************************* End Proc ***************************************/