【发布时间】:2012-01-28 00:17:17
【问题描述】:
我对 Java 还很陌生,想知道这个逻辑是否合理。此类的目的是在 12 小时格式的时间内接收用户的输入。然后提示用户输入一段时间。最后,它以 12 小时格式输出最终时间(加上时间)。我已经通过这个运行了几个测试场景,一切似乎都运行良好。在我称它为好之前,我只是想要一些额外的训练有素的眼睛来看看它。感谢您的帮助!
import javax.swing.JOptionPane;
public class M3E7 {
public static void main(String args[]) {
String start_hr = null;
String start_min = null;
String start_sec = null;
String abbr = null;
String hr = null;
String min = null;
String sec = null;
int start_hr_num = 0;
int start_min_num = 0;
int start_sec_num = 0;
int hr_num = 0;
int min_num = 0;
int sec_num = 0;
int final_hr = 0;
int final_min = 0;
int final_sec = 0;
start_hr = JOptionPane.showInputDialog("Start time - Enter the hours.");
start_min = JOptionPane.showInputDialog("Start time - Enter the minutes.");
start_sec = JOptionPane.showInputDialog("Start time - Enter the seconds.");
abbr = JOptionPane.showInputDialog("Start time - Enter either am or pm.");
hr = JOptionPane.showInputDialog("Enter the number of hours to add (less than 24).");
min = JOptionPane.showInputDialog("Enter the number of minutes to add (less than 60).");
sec = JOptionPane.showInputDialog("Enter the number of seconds to add (less than 60).");
start_hr_num = Integer.parseInt(start_hr);
start_min_num = Integer.parseInt(start_min);
start_sec_num = Integer.parseInt(start_sec);
hr_num = Integer.parseInt(hr);
min_num = Integer.parseInt(min);
sec_num = Integer.parseInt(sec);
if (abbr.equals("pm")); {
start_hr_num += 12;
}
final_hr = (start_hr_num + hr_num);
final_min = (start_min_num + min_num);
final_sec = (start_sec_num + sec_num);
if (final_sec >= 60) {
final_min++;
final_sec -= 60;
}
if (final_min >= 60) {
final_hr++;
final_min -= 60;
}
if (final_hr >= 24) {
final_hr -= 24;
}
if (final_hr > 12) {
final_hr -= 12;
abbr.equals("pm");
}
else if (final_hr == 12) {
final_hr -= 12;
abbr.equals("am");
}
else {
abbr.equals("am");
}
JOptionPane.showMessageDialog(null, "The new time of day is " + final_hr + ":" + final_min + ":" + final_sec + " " + abbr);
System.exit(0);
}
}
【问题讨论】:
-
如果这不是家庭作业,您应该知道已经存在执行此操作的方法。见stackoverflow.com/questions/439903
-
班级名称中的E7表示这是“练习7”,大约是学期中的那个时间......
-
这是学校作业。我们应该使用迄今为止我们所拥有的有限知识来完成此任务(仅涵盖了几周的材料)。在我自己努力完成之后,我会看看我可以在网上找到哪些替代解决方案...... :)。
-
这真的有效吗?您正在寻求改进?或者你不确定它是否会起作用?
标签: java