Date and EDate types

The EGL Date type is a value type that lets you create a date value. In Eclipse IDE for EGL Developers, the type definition for Date is EDate.

EGL package name

eglx.lang

Example use
After the following code runs, the value of result is the current date, and the value of result02 is January 4, 2009:
result Date; 
result02 Date = "01-04-2009";
Type detail
In the following detail, the Operation annotation indicates that the specified operation is available. For example, use “==” to compare two values, not “$EQ”. Two exceptions are the widen and narrow operations, which are invoked during data conversions; for example, when the as operator is used.
/**
 * A date stores a day, month, and year.
 */
externalType EDate extends AnyValue type ClassType
/**
	 * {@Operation <} Compares two dates.
	 */
static function $LT(lvalue EDate in, rvalue EDate in) 
       returns (EBoolean) {@Operation{"<"}};

/**
	 * {@Operation >} Compares two dates.
	 */
static function $GT(lvalue EDate in, rvalue EDate in) 
       returns (EBoolean) {@Operation{">"}};

/**
	 * {@Operation <=} Compares two dates.
*/
static function $LTE(lvalue EDate in, rvalue EDate in) 
       returns (EBoolean) {@Operation{"<="}};

/**
	 * {@Operation >=} Compares two dates.
*/
static function $GTE(lvalue EDate in, rvalue EDate in) 
       returns (EBoolean) {@Operation{">="}};

/**
	 * {@Operation ==} Compares two dates.
*/
static function $EQ(lvalue EDate in, rvalue EDate in) 
       returns(EBoolean) {@Operation{"=="}};

/**
 * {@Operation !=} Compares two dates.
*/
static function $NEQ(lvalue EDate in, rvalue EDate in) 
       returns(EBoolean) {@Operation{"!="}};

/**
	 * {@Operation narrow} Converts a string to a date.  The string is parsed
	 * by searching for the month, then the day, then the year.  One or two digits
	 * can be specified for the month and day.  The year requires a minimum of one
	 * digit and a maximum of at least four digits (in other words, some implementations
	 * can support years beyond 9999).  One separator character is required between
	 * the month and day, and another between the day and year.  The separator 
	 * character can be anything, even a digit (though that's probably a bad idea)
	 * and the two separator characters don't have to be identical.  
	 *
	 * @throws TypeCastException if the string can't be parsed into a date.
	 */
static function asDate(value EString in) 
       returns (EDate) {@Operation{"narrow"}};
	
	// this replaces date-time math: date - date = int
	/**
	 * Returns the number of days between two dates.  The result is positive when
	 * this date is later than the other date, and negative when the other date
	 * is later than this date.
	 *
	 * @param other  the other date.
	 * @return how many days the two days differ.
	 */
function daysDifferent(other EDate in) returns(EInt);

// this replaces date-time math: number + date = date, data +/- number = date
/**
	 * Returns a new date representing this date plus a given number of days.
	 * Use negative numbers to subtract days instead of adding them. 
	 *
	 * @param days  the number of days to add.
	 * @return a new date.
	 */
function addDays(days EInt in) returns(EDate);

/**
	 * Creates a timestamp from a date.
	 *
	 * @param timeSpanPattern  the desired pattern for the timestamp.
	 * @return a new timestamp.
*/
function extend(timeSpanPattern EString in) returns(ETimestamp);
end
Comments
Table 1. For additional information
Conversion rules Reference
To convert a string to a date. See the earlier comments for the asString function.
To convert a date to a string, in the absence of a format. See “String and EString types”; in particular, the comments for the asString function. As suggested in the following example, the as String clause invokes that function:
result03 Date = "01/04/2009";
sysLib.writeStdOut(result03 as String);
Here is the example output:
2009-01-04 12:01
To convert a date to a string, in the presence of a format. See “StringLib.format.” Also, note the set of useful date formats in “Constants library.”
Compatibility
Table 2. Compatibility
Target Issue
Java No issues.
JavaScript No issues.