createLocalisedDayOfWeekAsInteger(locale[, iso])
Last updated December 08, 2013
Version: 1 | Requires: CF10 | Library: CFMLLib
Description:
Improves dayOfWeekAsInteger() to be locale- and ISO-aware. Thanks to Simon Bingham, Duncan Cumming, Matt Bourke and James Moberg for inspiration for this.
Return Values:
A function which performed localised dayOfWeekAsInteger() operations
Example:
include "createLocalisedDayOfWeekAsInteger.cfm";
LSDayOfWeekAsIntegerFR = createLocalisedDayOfWeekAsInteger("fr_fr");
writeOutput("Dimanche is day of week: #LSDayOfWeekAsIntegerFR("dimanche")#");
Parameters:
Name | Description | Required |
---|---|---|
locale | The locale to use when localising the returned function | Yes |
iso | Whether to consider Sunday day 1 (default in CFML) or 7 (ISO standard) | No |
Full UDF Source:
/**
* Returns a localised version of dayOfWeekAsInteger() (http://www.cflib.org/udf/dayOfWeekAsInteger)
* v1.0 by Adam Cameron
*
* @param locale The locale to use when localising the returned function (Required)
* @param iso Whether to consider Sunday day 1 (default in CFML) or 7 (ISO standard) (Optional)
* @return A function which performed localised dayOfWeekAsInteger() operations
* @author Adam Cameron (dac.cfml@gmail.com)
* @version 1.0, December 8, 2013
*/
function function createLocalisedDayOfWeekAsInteger(required string locale, boolean iso=false){
var supportedLocales = SERVER.coldfusion.supportedLocales;
if (!listFindNoCase(supportedLocales, locale)){
throw(type="InvalidLocaleException", message="Invalid locale value specified", detail="Locale must be one of #supportedLocales#");
}
var baseDate = createDate(1972, 1, iso ? 31:30); // ie: in ISO mode, start on Mon. Otherwise CF mode: Sun
var days = "";
for (var i=0; i < 7; i++){
days = listAppend(days, lsDateFormat(dateAdd("d", i, baseDate), "dddd", locale));
}
return function(required string day){
var index = listFindNoCase(days, day);
if (index){
return index;
}
throw(type="ArgumentOutOfRangeException", message="Invalid day value", detail="day argument value (#day#) must be one of #days#");
};
}
Search CFLib.org
Latest Additions
Raymond Camden added
QueryDeleteRows
November 04, 2017
Leigh added
nullPad
May 11, 2016
Raymond Camden added
stripHTML
May 10, 2016
Kevin Cotton added
date2ExcelDate
May 05, 2016
Raymond Camden added
CapFirst
April 25, 2016