For each functoid I’ve shown:
Functoids covered in this category:
Add Days | Time |
Date | Common Code |
Date and Time |
Download the complete series as a single Microsoft
Word document (1.2MB) or Adobe
PDF document (620kb).
Date/Time Functoids |
||
Note: XSLT 1.0 has no built-in Date/Time functions, whereas |
||
|
|
|
Generates: C# |
Has XSLT Equivalent: in 2.0 only |
|
Emitted Code: public string DateAddDays(string date, string days) { string retval = “”; double db = 0; if (IsDate(date) && IsNumeric(days, ref db)) { DateTime dt = DateTime.Parse(date); int d = (int)db; dt = dt.AddDays(d); retval = dt.ToString(“yyyy-MM-dd”, System.Globalization.CultureInfo.InvariantCulture); } return retval; } |
||
XSLT 1.0 Equivalent: (none) |
||
XSLT 2.0 Equivalent: xs:dateTime(‘2007-12-12’) + xdt:dayTimeDuration(‘PxD’) Where x (in dayTimeDuration()) is number of days to add e.g. 5 days would be ‘P5D’ |
||
|
|
|
Generates: C# |
Has XSLT Equivalent: in 2.0 only |
|
Emitted Code: public string DateCurrentDate() { DateTime dt = DateTime.Now; return dt.ToString(“yyyy-MM-dd”, System.Globalization.CultureInfo.InvariantCulture); } |
||
XSLT 1.0 Equivalent: (none) |
||
XSLT 2.0 Equivalent: fn:current-date() |
||
|
|
|
Generates: C# |
Has XSLT Equivalent: in 2.0 only |
|
Emitted Code: public string DateCurrentDateTime() { DateTime dt = DateTime.Now; string curdate = dt.ToString(“yyyy-MM-dd”, System.Globalization.CultureInfo.InvariantCulture); string curtime = dt.ToString(“T”, System.Globalization.CultureInfo.InvariantCulture); string retval = curdate + “T” + curtime; return retval; } |
||
XSLT 1.0 Equivalent: (none) |
||
XSLT 2.0 Equivalent: fn:current-dateTime() |
||
|
|
|
Generates: C# |
Has XSLT Equivalent: in 2.0 only |
|
Emitted Code: public string DateCurrentTime() { DateTime dt = DateTime.Now; return dt.ToString(“T”, System.Globalization.CultureInfo.InvariantCulture); } |
||
XSLT 1.0 Equivalent: (none) |
||
XSLT 2.0 Equivalent: fn:current-date() |
||
Common Code (this is common code used by all the date/time functoids) |
||
public bool IsNumeric(string val) { if (val == null) { return false; } double d = 0; return Double.TryParse(val, System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out d); } public bool IsNumeric(string val, ref double d) { if (val == null) { return false; } return Double.TryParse(val, System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out d); } public bool IsDate(string val) { bool retval = true; try { DateTime dt = Convert.ToDateTime(val, System.Globalization.CultureInfo.InvariantCulture); } catch (Exception) { retval = false; } return retval; } |