Java 使用for循环查找两个时间字符串(hh:mm:ss)之间的差异
我需要使用for循环和数组来获取两个输入并减去它们(输入格式Java 使用for循环查找两个时间字符串(hh:mm:ss)之间的差异,java,android,time,for-loop,Java,Android,Time,For Loop,我需要使用for循环和数组来获取两个输入并减去它们(输入格式hh:mm:ss)。然后在编辑文本中输出差异。但我似乎无法让我的代码运行 抱歉,如果这是一个非常基本的问题。我花了好几天的时间上网,试图了解这个问题。这是我第一次尝试Java @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main
hh:mm:ss
)。然后在编辑文本中输出差异。但我似乎无法让我的代码运行
抱歉,如果这是一个非常基本的问题。我花了好几天的时间上网,试图了解这个问题。这是我第一次尝试Java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
end = (EditText) findViewById(R.id.etEnd);
start = (EditText) findViewById(R.id.etStart);
diff = (EditText) findViewById(R.id.etDiff);
calc = (Button) findViewById(R.id.bCalc);
clear = (Button) findViewById(R.id.bClear);
calc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int hh = tot[0];
int mm = tot[1];
int ss = tot[2];
String sGet2 = end.getText().toString(); // end to string
String sGet1 = start.getText().toString(); // start to string
String[] erA = sGet2.split(":"); // end string to end array
String[] srA = sGet1.split(":"); // start string to string array
for (int i = 0; i < srA.length; i++) {
inted = Integer.parseInt(erA[i].trim());
intst = Integer.parseInt(srA[i].trim());
tot[i] = inted - intst;
if (i == 2) {
String mt = ":" + mm;
String st = ":" + ss;
String ht = ":" + hh;
String tota = mt + st;
String total = tota + ht;
out = String.format("%4.4s", total);
diff.setText(out);
} else
return;
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
end=(EditText)findViewById(R.id.etEnd);
start=(EditText)findViewById(R.id.etStart);
diff=(EditText)findViewById(R.id.etDiff);
计算=(按钮)findViewById(R.id.bCalc);
clear=(按钮)findViewById(R.id.bClear);
calc.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
int hh=tot[0];
int mm=tot[1];
int ss=tot[2];
字符串sGet2=end.getText().toString();//结束到字符串
字符串sGet1=start.getText().toString();//开始到字符串
String[]erA=sGet2.split(“:”;//结束字符串到结束数组
String[]srA=sGet1.split(“:”;//从字符串开始到字符串数组
对于(int i=0;i
你的代码不工作并不奇怪……很多代码从未执行过
for (int i = 0; i < srA.length; i++) {
// bla bla bla
if (i == 2) {
// This code never runs because i is always 0.
} else
return; // What is this doing here!?
}
for(int i=0;i
如果这是您第一次尝试编程,那么我认为您应该从简单一点的程序开始,例如控制台程序。还可以使用调试器逐步完成代码,以便查看控制流的工作方式
您可能还想买一本教Java的书。有许多好书可以让您从基础知识开始学习。您的代码不起作用并不奇怪……很多代码从未执行过
for (int i = 0; i < srA.length; i++) {
// bla bla bla
if (i == 2) {
// This code never runs because i is always 0.
} else
return; // What is this doing here!?
}
for(int i=0;i
如果这是您第一次尝试编程,那么我认为您应该从简单一点的程序开始,例如控制台程序。还可以使用调试器逐步完成代码,以便查看控制流的工作方式
您可能还想买一本教Java的书。有许多好书可以让您从基础开始学习。很好的代码为什么要返回else部分。当i=0时,它会终止执行。这是因为for循环开始执行 第一次i值为零,条件i==2失败,然后它执行else部分,从而终止for循环。那么for循环有什么用 使用以下代码::
String time1 = "22:55:00";
String time2 = "23:05:00";
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
Date date1 = format.parse(time1);
Date date2 = format.parse(time2);
long difference = date2.getTime() - date1.getTime();
不同之处在于,以毫秒为单位,您可以将其转换为任何单位,也可以使用apache commons中的DurationFormatUtils对其进行精确格式化
System.out.println("Duration: "+DurationFormatUtils.formatDuration(difference, "HH:mm:ss"));
apache commons有非常好的实用程序函数,apache commons(lang)很好的代码为什么要在else部分返回。它在i=0时终止执行。这是因为for循环开始执行 第一次i值为零,条件i==2失败,然后它执行else部分,从而终止for循环。那么for循环有什么用 使用以下代码::
String time1 = "22:55:00";
String time2 = "23:05:00";
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
Date date1 = format.parse(time1);
Date date2 = format.parse(time2);
long difference = date2.getTime() - date1.getTime();
不同之处在于,以毫秒为单位,您可以将其转换为任何单位,也可以使用apache commons中的DurationFormatUtils对其进行精确格式化
System.out.println("Duration: "+DurationFormatUtils.formatDuration(difference, "HH:mm:ss"));
apache commons有非常好的实用程序函数,apache commons(lang)我应该去掉if和else语句并将if代码放在for循环之后吗?哦,并失去返回;你到底想做什么我有三个EditText。其中两个用于输入(例如hh:mm:ss)当按下提交按钮时,第三个按钮将显示差异。谢谢你,我将试一试。谢谢你花时间发布。我是否应该取出if和else语句,并将if代码放在for循环之后?哦,并失去返回;你到底想做什么我有三个EditText。其中两个用于输入(例如hh:mm:ss)当按下提交按钮时,第三个按钮将显示差异。谢谢,我将试一试。感谢您花时间发布。