例如,如果用户输入是1.71(1小时71分钟),那么我想将其转换为2.11(2小时11分钟)
DecimalFormat time = new DecimalFormat("##.## p.m");
int userInput = 1.71;
System.out.print(time.format(userInput));
答案 0 :(得分:1)
将输入解析为日期,然后将日期格式化为输出格式:
Scanner sc = new Scanner(System.in);
DateFormat df = new SimpleDateFormat("HH.mm");
DateFormat dfout = new SimpleDateFormat("H.mm a");
Date date = df.parse(sc.next());
System.out.println(dfout.format(date));
答案 1 :(得分:0)
我不确定我的问题是否正确,但不应该做以下工作?
int hours = (int)userInput;
decimal minutestmp = ((userInput - hours) * 60);
int minutes = (int)minutestmp;
String TimeString = hours + ":" + minutes;
Date date = new SimpleDateFormat("HH:mm").parse(TimeString);
String newTimeString = new SimpleDateFormat("H:mm").format(date);
答案 2 :(得分:0)
日期时间字符串的ISO 8601标准定义了他们称之为Durations的内容的格式:PnYnMnDTnHnMnS
。
Joda-Time库知道如何解析和生成这样的字符串。
首先,将输入转换为这样的字符串。然后将新字符串输入Joda-Time。最后请Joda-Time重新计算小时和分钟。 StackOverflow多次覆盖了所有这些。请搜索详细信息。
要翻译该输入,请替换句号,然后添加前缀和附加。
String d = "PT" + "1.71".replace( ".", "H") + "M"; // PT1H71M
喂Joda-Time。
Period period = Period.parse( d );
将分钟标准化。
Period p = period.normalizedStandard();
或者,您可以拆分输入的小时和分钟部分,然后将它们作为整数提供给Period的构造函数。