Units.java [src/java/hydraulics] Revision: Date:
package hydraulics;
import java.util.ArrayList;
/**
* Last Updated: 29-August-2014
* @author Tyler Wible
* @since 28-July-2014
*/
public class Units{
/**
* Determine the unit conversion required to convert "unit_in" into "unit_out" taking into consideration leap years for time-units.
* @param unit_in
* @param unit_out
* @param leapyr true if it is a leap year, false otherwise
* @return
*/
public double getUnitConversion(String unit_in, String unit_out, boolean leapyr){
double conversion = -1;
//Determine the time unit conversion
if (unit_in.equalsIgnoreCase("seconds") && unit_out.equalsIgnoreCase("minutes")) {
conversion = 1./60.; //Convert seconds to minutes
}else if(unit_in.equalsIgnoreCase("seconds") && unit_out.equalsIgnoreCase("hours")) {
conversion = 1./3600.; //Convert seconds to hours
}else if(unit_in.equalsIgnoreCase("seconds") && unit_out.equalsIgnoreCase("days")) {
conversion = 1./86400.; //Convert seconds to days
}else if(unit_in.equalsIgnoreCase("seconds") && unit_out.equalsIgnoreCase("years") && leapyr == false) {
conversion = 1./31536000.; //Convert seconds to non-leap years
}else if(unit_in.equalsIgnoreCase("seconds") && unit_out.equalsIgnoreCase("years") && leapyr == true) {
conversion = 1./31622400.; //Convert seconds to leap years
}else if(unit_in.equalsIgnoreCase("minutes") && unit_out.equalsIgnoreCase("seconds")) {
conversion = 60.; //Convert minutes to seconds
}else if(unit_in.equalsIgnoreCase("minutes") && unit_out.equalsIgnoreCase("hours")) {
conversion = 1./60.; //Convert minutes to hours
}else if(unit_in.equalsIgnoreCase("minutes") && unit_out.equalsIgnoreCase("days")) {
conversion = 1./1440.; //Convert minutes to days
}else if(unit_in.equalsIgnoreCase("minutes") && unit_out.equalsIgnoreCase("years") && leapyr == false) {
conversion = 1./525600.; //Convert minutes to non-leap years
}else if(unit_in.equalsIgnoreCase("minutes") && unit_out.equalsIgnoreCase("years") && leapyr == true) {
conversion = 1./527040.; //Convert minutes to leap years
}else if(unit_in.equalsIgnoreCase("hours") && unit_out.equalsIgnoreCase("seconds")) {
conversion = 3600.; //Convert hours to seconds
}else if(unit_in.equalsIgnoreCase("hours") && unit_out.equalsIgnoreCase("minutes")) {
conversion = 60.; //Convert hours to minutes
}else if(unit_in.equalsIgnoreCase("hours") && unit_out.equalsIgnoreCase("days")) {
conversion = 1./24.; //Convert hours to days
}else if(unit_in.equalsIgnoreCase("hours") && unit_out.equalsIgnoreCase("years") && leapyr == false) {
conversion = 1./8760.; //Convert hours to non-leap years
}else if(unit_in.equalsIgnoreCase("hours") && unit_out.equalsIgnoreCase("years") && leapyr == true) {
conversion = 1./8784.; //Convert hours to leap years
}else if(unit_in.equalsIgnoreCase("days") && unit_out.equalsIgnoreCase("seconds")) {
conversion = 86400.; //Convert days to seconds
}else if(unit_in.equalsIgnoreCase("days") && unit_out.equalsIgnoreCase("minutes")) {
conversion = 1440.; //Convert days to minutes
}else if(unit_in.equalsIgnoreCase("days") && unit_out.equalsIgnoreCase("hours")) {
conversion = 24.; //Convert days to hours
}else if(unit_in.equalsIgnoreCase("days") && unit_out.equalsIgnoreCase("years") && leapyr == false) {
conversion = 1./365.; //Convert days to non-leap years
}else if(unit_in.equalsIgnoreCase("days") && unit_out.equalsIgnoreCase("years") && leapyr == true) {
conversion = 1./366.; //Convert days to leap years
}else if(unit_in.equalsIgnoreCase("years") && unit_out.equalsIgnoreCase("seconds") && leapyr == false) {
conversion = 31536000.; //Convert non-leap years to seconds
}else if(unit_in.equalsIgnoreCase("years") && unit_out.equalsIgnoreCase("minutes") && leapyr == false) {
conversion = 525600.; //Convert non-leap years to minutes
}else if(unit_in.equalsIgnoreCase("years") && unit_out.equalsIgnoreCase("hours") && leapyr == false) {
conversion = 8760.; //Convert non-leap years to hours
}else if(unit_in.equalsIgnoreCase("years") && unit_out.equalsIgnoreCase("days") && leapyr == false) {
conversion = 365.; //Convert non-leap years days
}else if(unit_in.equalsIgnoreCase("years") && unit_out.equalsIgnoreCase("seconds") && leapyr == true) {
conversion = 31622400.; //Convert leap years to seconds
}else if(unit_in.equalsIgnoreCase("years") && unit_out.equalsIgnoreCase("minutes") && leapyr == true) {
conversion = 527040.; //Convert leap years to minutes
}else if(unit_in.equalsIgnoreCase("years") && unit_out.equalsIgnoreCase("hours") && leapyr == true) {
conversion = 8784.; //Convert leap years to hours
}else if(unit_in.equalsIgnoreCase("years") && unit_out.equalsIgnoreCase("days") && leapyr == true) {
conversion = 366.; //Convert leap years days
//Determine the distance unit conversion
}else if(unit_in.equalsIgnoreCase("feet") && unit_out.equalsIgnoreCase("meters")) {
conversion = 1./3.28084; //Convert feet to meters
}else if(unit_in.equalsIgnoreCase("feet") && unit_out.equalsIgnoreCase("centimeters")) {
conversion = 1./0.0328084; //Convert feet to centimeters
}else if(unit_in.equalsIgnoreCase("feet") && unit_out.equalsIgnoreCase("millimeters")) {
conversion = 1./0.00328084; //Convert feet to millimeters
}else if(unit_in.equalsIgnoreCase("feet") && unit_out.equalsIgnoreCase("kilometers")) {
conversion = 1./3280.84; //Convert feet to kilometers
}else if(unit_in.equalsIgnoreCase("meters") && unit_out.equalsIgnoreCase("feet")) {
conversion = 3.28084; //Convert meters to feet
}else if(unit_in.equalsIgnoreCase("meters") && unit_out.equalsIgnoreCase("centimeters")) {
conversion = 100.; //Convert meters to centimeters
}else if(unit_in.equalsIgnoreCase("meters") && unit_out.equalsIgnoreCase("millimeters")) {
conversion = 1000.; //Convert meters to millimeters
}else if(unit_in.equalsIgnoreCase("meters") && unit_out.equalsIgnoreCase("kilometers")) {
conversion = 1./1000.; //Convert meters to kilometers
}else if(unit_in.equalsIgnoreCase("centimeters") && unit_out.equalsIgnoreCase("feet")) {
conversion = 0.0328084; //Convert centimeters to feet
}else if(unit_in.equalsIgnoreCase("centimeters") && unit_out.equalsIgnoreCase("meters")) {
conversion = 1./100.; //Convert centimeters to meters
}else if(unit_in.equalsIgnoreCase("centimeters") && unit_out.equalsIgnoreCase("millimeters")) {
conversion = 10.; //Convert centimeters to millimeters
}else if(unit_in.equalsIgnoreCase("centimeters") && unit_out.equalsIgnoreCase("kilometers")) {
conversion = 1./100000.; //Convert centimeters to kilometers
}else if(unit_in.equalsIgnoreCase("millimeters") && unit_out.equalsIgnoreCase("feet")) {
conversion = 0.00328084; //Convert millimeters to feet
}else if(unit_in.equalsIgnoreCase("millimeters") && unit_out.equalsIgnoreCase("meters")) {
conversion = 1./1000.; //Convert millimeters to meters
}else if(unit_in.equalsIgnoreCase("millimeters") && unit_out.equalsIgnoreCase("centimeters")) {
conversion = 1./10.; //Convert millimeters to centimeters
}else if(unit_in.equalsIgnoreCase("millimeters") && unit_out.equalsIgnoreCase("kilometers")) {
conversion = 1./1000000.; //Convert millimeters to kilometers
}else if(unit_in.equalsIgnoreCase("kilometers") && unit_out.equalsIgnoreCase("feet")) {
conversion = 3280.84; //Convert kilometers to feet
}else if(unit_in.equalsIgnoreCase("kilometers") && unit_out.equalsIgnoreCase("meters")) {
conversion = 1000.; //Convert kilometers to meters
}else if(unit_in.equalsIgnoreCase("kilometers") && unit_out.equalsIgnoreCase("centimeters")) {
conversion = 100000.; //Convert kilometers to centimeters
}else if(unit_in.equalsIgnoreCase("kilometers") && unit_out.equalsIgnoreCase("millimeters")) {
conversion = 1000000.; //Convert kilometers to milimeters
//Determine the mass unit conversion
}else if(unit_in.equalsIgnoreCase("slugs") && unit_out.equalsIgnoreCase("kilograms")) {
conversion = 14.5939029; //Convert slugs to kilograms
}else if(unit_in.equalsIgnoreCase("slugs") && unit_out.equalsIgnoreCase("grams")) {
conversion = 14593.9029; //Convert slugs to grams
}else if(unit_in.equalsIgnoreCase("slugs") && unit_out.equalsIgnoreCase("milligrams")) {
conversion = 14593902.9; //Convert slugs to milligrams
}else if(unit_in.equalsIgnoreCase("slugs") && unit_out.equalsIgnoreCase("micrograms")) {
conversion = 14593902900.; //Convert slugs to micrograms
}else if(unit_in.equalsIgnoreCase("kilograms") && unit_out.equalsIgnoreCase("slugs")) {
conversion = 0.0685217659; //Convert kilograms to slugs
}else if(unit_in.equalsIgnoreCase("kilograms") && unit_out.equalsIgnoreCase("grams")) {
conversion = 1000.; //Convert kilograms to grams
}else if(unit_in.equalsIgnoreCase("kilograms") && unit_out.equalsIgnoreCase("milligrams")) {
conversion = 1000000.; //Convert kilograms to milligrams
}else if(unit_in.equalsIgnoreCase("kilograms") && unit_out.equalsIgnoreCase("micrograms")) {
conversion = 1000000000.; //Convert kilograms to micrograms
}else if(unit_in.equalsIgnoreCase("grams") && unit_out.equalsIgnoreCase("slugs")) {
conversion = 0.0000685217659; //Convert grams to slugs
}else if(unit_in.equalsIgnoreCase("grams") && unit_out.equalsIgnoreCase("kilograms")) {
conversion = 1./1000.; //Convert grams to kilograms
}else if(unit_in.equalsIgnoreCase("grams") && unit_out.equalsIgnoreCase("milligrams")) {
conversion = 1000.; //Convert grams to milligrams
}else if(unit_in.equalsIgnoreCase("grams") && unit_out.equalsIgnoreCase("micrograms")) {
conversion = 1000000.; //Convert grams to micrograms
}else if(unit_in.equalsIgnoreCase("milligrams") && unit_out.equalsIgnoreCase("slugs")) {
conversion = 0.0000000685217659; //Convert milligrams to slugs
}else if(unit_in.equalsIgnoreCase("milligrams") && unit_out.equalsIgnoreCase("kilograms")) {
conversion = 1./1000000.; //Convert milligrams to kilograms
}else if(unit_in.equalsIgnoreCase("milligrams") && unit_out.equalsIgnoreCase("grams")) {
conversion = 1./1000.; //Convert milligrams to grams
}else if(unit_in.equalsIgnoreCase("milligrams") && unit_out.equalsIgnoreCase("micrograms")) {
conversion = 1000.; //Convert milligrams to micrograms
}else if(unit_in.equalsIgnoreCase("micrograms") && unit_out.equalsIgnoreCase("slugs")) {
conversion = 0.0000000000685217659; //Convert micrograms to slugs
}else if(unit_in.equalsIgnoreCase("micrograms") && unit_out.equalsIgnoreCase("kilograms")) {
conversion = 1./1000000000.; //Convert micrograms to kilograms
}else if(unit_in.equalsIgnoreCase("micrograms") && unit_out.equalsIgnoreCase("grams")) {
conversion = 1./1000000.; //Convert micrograms to grams
}else if(unit_in.equalsIgnoreCase("micrograms") && unit_out.equalsIgnoreCase("milligrams")) {
conversion = 1./1000.; //Convert micrograms to milligrams
//Determine the area unit conversion
}else if(unit_in.equalsIgnoreCase("square feet") && unit_out.equalsIgnoreCase("square meters")) {
conversion = 1./10.7639; //Convert square feet to square meters
}else if(unit_in.equalsIgnoreCase("square feet") && unit_out.equalsIgnoreCase("hectare")) {
conversion = 1./107639.; //Convert square feet to hectacres
}else if(unit_in.equalsIgnoreCase("square meters") && unit_out.equalsIgnoreCase("square feet")) {
conversion = 10.7639; //Convert square meters to square feet
}else if(unit_in.equalsIgnoreCase("square meters") && unit_out.equalsIgnoreCase("hectare")) {
conversion = 0.0001; //Convert square meters to hectacres
}else if(unit_in.equalsIgnoreCase("hectare") && unit_out.equalsIgnoreCase("square feet")) {
conversion = 107639.; //Convert hectacres to square feet
}else if(unit_in.equalsIgnoreCase("hectare") && unit_out.equalsIgnoreCase("square meters")) {
conversion = 10000.; //Convert hectacres to square meters
}else{
conversion = 1.; //Conversion Error, conversion not accounted for
}
return conversion;
}
/**
*
* @param value
* @param unit_in
* @param unit_out
* @param magnitude
* @param leapyr
* @return
*/
public double convertUnits(double value, String unit_in, String unit_out, int magnitude, boolean leapyr){
//Get conversion factor
double conversion = getUnitConversion(unit_in, unit_out, leapyr);
//Convert the value into its new units
value = value * Math.pow(conversion, magnitude);
return value;
}
/**
*
* @param array
* @param unit_in
* @param unit_out
* @param magnitude
* @param leapyr
* @return
*/
public ArrayList<Double> convertUnits(ArrayList<Double> array, String unit_in, String unit_out, int magnitude, boolean leapyr){
//Get conversion factor
double conversion = getUnitConversion(unit_in, unit_out, leapyr);
//Convert line by line the array into its new units
for(int i=0; i< array.size(); i++){
array.set(i, array.get(i) * Math.pow(conversion, magnitude));
}
return array;
}
}