CFLib.org – Common Function Library Project

ConvertLength(numberValue, convertFrom, convertTo)

Last updated April 23, 2002

Version: 1 | Requires: ColdFusion 5 | Library: MathLib

 
Rated 0 time(s). Average Rating: 0

Description:
Convert bewteen standard and metric lengths. Convert between any of these lengths: Inch, Foot, Yard, Mile, Millimeter, Centimeter, Meter, Kilometer.

Return Values:
Returns a numeric value.

Example:

view plain print about
<cfoutput>
7 miles is #ConvertLength("7","mile","centimeter")# centimeters.
</cfoutput>

Parameters:

Name Description Required
numberValue Value to be converted. Yes
convertFrom Type of unit to convert from. Yes
convertTo Type of unit to convert to. Yes

Full UDF Source:

view plain print about
<cfscript>
/**
 * Convert bewteen standard and metric lengths.
 * 
 * @param numberValue      Value to be converted. 
 * @param convertFrom      Type of unit to convert from. 
 * @param convertTo      Type of unit to convert to. 
 * @return Returns a numeric value. 
 * @author Seth Duffey (sduffey@ci.davis.ca.us) 
 * @version 1, April 23, 2002 
 */

function ConvertLength(NumberValue,ConvertFrom,ConvertTo) {
    var ValuesArray = ArrayNew(1);
    var LookupArray = ArrayNew(2);
    var i = 1;
    var ii = 1;
    var GetMultiplier = 1;
    
    /* Set Convertions Values */
    ValuesArray[1] = "Inch,Foot,Yard,Mile,Millimeter,Centimeter,Meter,Kilometer";
    ValuesArray[2] = "1,12,36,63360,1/25.4,1/2.54,1/0.0254,1/0.0000254";
    ValuesArray[3] = "1/12,1,3,5280,1/304.8,1/30.48,1/0.3048,1/0.0003048";
    ValuesArray[4] = "1/36,1/3,1,1760,1/914.4,1/91.44,1/0.9144,1/0.0009144";
    ValuesArray[5] = "1/63360,1/5280,1/1760,1,1/1609334,1/160934.4,1/1609.344,1/1.609344";
    ValuesArray[6] = "25.4,304.8,914.4,1609334,1,10,1000,1000000";
    ValuesArray[7] = "2.54,30.48,91.44,160934.4,1/10,1,100,100000";
    ValuesArray[8] = "0.0254,0.3048,0.9144,1609.344,1/1000,1/100,1,1000";
    ValuesArray[9] = "0.0000254,0.0003048,0.0009144,1.609344,1/1000000,1/100000,1/1000,1";
    
    /* Populate Lookup Array */
    for (i=1; i LTE ArrayLen(ValuesArray); i=i+1)
    {
        for (ii=1; ii LTE ListLen(ValuesArray[i],","); ii=ii+1)
        LookupArray[i][ii]= ListGetAt(ValuesArray[i],ii,",");
    }
/* Find Multiplier and Calculate Result */
    ConvertFrom = ListFindNoCase(ValuesArray[1],ConvertFrom,",");
    ConvertTo = ListFindNoCase(ValuesArray[1],ConvertTo,",");
    GetMultiplier = LookupArray[ConvertFrom+1][ConvertTo];
    return NumberValue/evaluate(GetMultiplier);
}
</cfscript>
blog comments powered by Disqus

Search CFLib.org


Latest Additions

Dave Anderson Dave Anderson added
iniToStruct
20 day(s) ago

Dave Anderson Dave Anderson added
deDupeArray
20 day(s) ago

Richard Richard added
dice
22 day(s) ago

Isaac Dealey Isaac Dealey added
getRelative
a while ago

Top Rated

Darwan Leonardo Sitepu backupDatabase
Rated 5.0, 22 time(s)

Barney Boisvert indentXml
Rated 5.0, 10 time(s)

Kevin Pepperman generateSsccAsn
Rated 5.0, 4 time(s)

Raymond Camden highlightAndCrop
Rated 5.0, 4 time(s)

Created by Raymond Camden / Design by Justin Johnson