
convertidor de unidades de temperatura
Java
Publicado el 19 de Diciembre del 2022 por Flavio Clever (2 códigos)
751 visualizaciones desde el 19 de Diciembre del 2022
import javax.swing.JOptionPane;
public class UnitConverter {
private static String[] convertTemperature(float value,String UnitToConverte, String ToUnitUnit){
String[] valueTemperature=new String[2];
String[] Unit={"Celsius","Fahrenheit","Kelvin","Rankine","Delisle","Newton","Réaumur","Rømer"};
// search point ubication
int x=0,y=0;
while(UnitToConverte.equals(Unit[x])){x++;}
while(ToUnitUnit.equals(Unit[y])){y++;}
//first convert all to Celsius
value = switch (UnitToConverte){
case "Rømer" -> (value-7.5f)*5/2.625f;//to celsius
case "Fahrenheit" -> (value-32)*5/9;//to celsius
case "Kelvin" -> (value)-273.15f;//to celsius
case "Rankine" -> (value-491.67f)*5/9;//to celsius
case "Delisle" -> (value-150)*5/(-7.5f);//to celsius
case "Newton" -> (value)*5/1.65f;//to celsius
case "Réaumur" -> value*5/4;//to celsius
default -> value;//celsius to celsius
};
// second convert to outlet unit
value = switch (ToUnitUnit){
case "Rømer" -> (value*2.625f/5)+7.5f;//to Rømer
case "Fahrenheit" -> (value*9/5)+32;//to Fahrenheit
case "Kelvin" -> (value)+273.15f;//to Kelvin
case "Rankine" -> (value*9/5)+491.67f;//to Rankine
case "Delisle" -> (value*(-7.5f)/5)+150;//to Delisle
case "Newton" -> (value)*1.65f/5;//to Newton
case "Réaumur" -> value*4/5;//to Réaumur
default -> value;//celsius to celsius
};
System.out.println("ans:"+value+" "+Unit[y]);
valueTemperature[0]=Float.toString(value);
valueTemperature[1]=ToUnitUnit;
return valueTemperature;
}
public static void main(String[] args) {
float valor=Float.parseFloat(JOptionPane.showInputDialog("Ingrese la temperatura a convertir"));
Object unidadeEntrada=JOptionPane.showInputDialog(null,"Seleccione la unidad de temperatura","UNIT INLET",JOptionPane.QUESTION_MESSAGE,null,new Object[]{"Celsius","Fahrenheit","Kelvin","Rankine","Delisle","Newton","Réaumur","Rømer"},"Celsius");
String unidadeEntrad=String.valueOf(unidadeEntrada);
Object UnidadSalida=JOptionPane.showInputDialog(null,"Seleccione la unidad de temperatura","UNIT INLET",JOptionPane.QUESTION_MESSAGE,null,new Object[]{"Celsius","Fahrenheit","Kelvin","Rankine","Delisle","Newton","Réaumur","Rømer"},"Celsius");
String UnidadSalid=String.valueOf(UnidadSalida);
String[] ans=convertTemperature(valor,unidadeEntrad,UnidadSalid);
String a="La temperatura en "+ans[1]+" es:"+ans[0];
JOptionPane.showMessageDialog(null,a,"PopUp Dialog",JOptionPane.INFORMATION_MESSAGE);
}
}
public class UnitConverter {
private static String[] convertTemperature(float value,String UnitToConverte, String ToUnitUnit){
String[] valueTemperature=new String[2];
String[] Unit={"Celsius","Fahrenheit","Kelvin","Rankine","Delisle","Newton","Réaumur","Rømer"};
// search point ubication
int x=0,y=0;
while(UnitToConverte.equals(Unit[x])){x++;}
while(ToUnitUnit.equals(Unit[y])){y++;}
//first convert all to Celsius
value = switch (UnitToConverte){
case "Rømer" -> (value-7.5f)*5/2.625f;//to celsius
case "Fahrenheit" -> (value-32)*5/9;//to celsius
case "Kelvin" -> (value)-273.15f;//to celsius
case "Rankine" -> (value-491.67f)*5/9;//to celsius
case "Delisle" -> (value-150)*5/(-7.5f);//to celsius
case "Newton" -> (value)*5/1.65f;//to celsius
case "Réaumur" -> value*5/4;//to celsius
default -> value;//celsius to celsius
};
// second convert to outlet unit
value = switch (ToUnitUnit){
case "Rømer" -> (value*2.625f/5)+7.5f;//to Rømer
case "Fahrenheit" -> (value*9/5)+32;//to Fahrenheit
case "Kelvin" -> (value)+273.15f;//to Kelvin
case "Rankine" -> (value*9/5)+491.67f;//to Rankine
case "Delisle" -> (value*(-7.5f)/5)+150;//to Delisle
case "Newton" -> (value)*1.65f/5;//to Newton
case "Réaumur" -> value*4/5;//to Réaumur
default -> value;//celsius to celsius
};
System.out.println("ans:"+value+" "+Unit[y]);
valueTemperature[0]=Float.toString(value);
valueTemperature[1]=ToUnitUnit;
return valueTemperature;
}
public static void main(String[] args) {
float valor=Float.parseFloat(JOptionPane.showInputDialog("Ingrese la temperatura a convertir"));
Object unidadeEntrada=JOptionPane.showInputDialog(null,"Seleccione la unidad de temperatura","UNIT INLET",JOptionPane.QUESTION_MESSAGE,null,new Object[]{"Celsius","Fahrenheit","Kelvin","Rankine","Delisle","Newton","Réaumur","Rømer"},"Celsius");
String unidadeEntrad=String.valueOf(unidadeEntrada);
Object UnidadSalida=JOptionPane.showInputDialog(null,"Seleccione la unidad de temperatura","UNIT INLET",JOptionPane.QUESTION_MESSAGE,null,new Object[]{"Celsius","Fahrenheit","Kelvin","Rankine","Delisle","Newton","Réaumur","Rømer"},"Celsius");
String UnidadSalid=String.valueOf(UnidadSalida);
String[] ans=convertTemperature(valor,unidadeEntrad,UnidadSalid);
String a="La temperatura en "+ans[1]+" es:"+ans[0];
JOptionPane.showMessageDialog(null,a,"PopUp Dialog",JOptionPane.INFORMATION_MESSAGE);
}
}