80,350
社区成员
发帖
与我相关
我的任务
分享
package com.example.diff;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.format.DateFormat;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button Btn4;
private EditText editText1;
private TextView textView1,textView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Btn4 = (Button) findViewById(R.id.btn4);
editText1 = (EditText) findViewById(R.id.EditText1);
textView1 = (TextView) findViewById(R.id.TextView1);
textView2 = (TextView) findViewById(R.id.TextView2);
new TimeThread().start();
Btn4.setOnClickListener(new MyClickListener());
}
class MyClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
Date currentTime = new Date();
String date1 = df.format(currentTime);
try
{
int I1 = editText1.length();
//pattern matcher /d/d/:/d/d:/d/d
if (I1 == 8)
{
CharSequence ed1 = editText1.getText();
String date2 = df.format(ed1);
try{
Date d1 = df.parse(date1);
Date d2 = df.parse(date2);
//计算时间差
long diff = (d1.getTime() - d2.getTime());
long day = diff / (1000 * 60 * 60 * 24);
long hour = (diff / (60 * 60 * 1000) - day *24);
long minute = (diff / (60 * 1000) - day * 24 * 60 - hour * 60);
long s = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60);
//输出时间差
System.out.println(hour + "小时" + minute + "分" + s + "秒");
textView2.setText(hour + "小时" + minute + "分");
}
catch(Exception e){
}
}
}
catch(Exception e)
{
}
}
}
class TimeThread extends Thread
{
@Override
public void run() {
do {
try
{
Thread.sleep(1000);
Message msg = new Message();
msg.what = 1; //消息(一个整型值)
mHandler.sendMessage(msg);// 每隔1秒发送一个msg给mHandler
} catch (InterruptedException e)
{
e.printStackTrace();
}
} while (true);
}
}
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what)
{
case 1:
long sysTime = System.currentTimeMillis();
CharSequence sysTimeStr = DateFormat.format("kk:mm:ss", sysTime);
textView1.setText(sysTimeStr); //更新时间
break;
default:
break;
}
}
};
}
package com.example.diff;
import java.text.FieldPosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.format.DateFormat;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button Btn4;
private EditText editText1;
private TextView textView1,textView2,textView3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Btn4 = (Button) findViewById(R.id.btn4);
editText1 = (EditText) findViewById(R.id.EditText1);
textView1 = (TextView) findViewById(R.id.TextView1);
textView2 = (TextView) findViewById(R.id.TextView2);
textView3 = (TextView) findViewById(R.id.TextView3);
new TimeThread().start();
Btn4.setOnClickListener(new MyClickListener());
}
class MyClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String currentTime = textView1.getText().toString();
StringBuffer date1 = df.format(date,new StringBuffer(),new FieldPosition(SimpleDateFormat.DATE_FIELD));
try
{
int I1 = editText1.length();
//pattern matcher /d/d/:/d/d:/d/d
if (I1 == 8)
{
String ed1 = editText1.getText().toString();
String error = editText1.getText().toString();
StringBuffer date2 = df.format(date,new StringBuffer(),new FieldPosition(SimpleDateFormat.DATE_FIELD));
try{
Date d1 = df.parse(currentTime);
Date d2 = df.parse(ed1);
//textView2.setText(String.valueOf(d2));
//textView3.setText(String.valueOf(d2.getTime()));
//计算时间差
long diff = (d1.getTime() - d2.getTime());
long day = diff / (1000 * 60 * 60 * 24);
long hour = (diff / (60 * 60 * 1000) - day *24);
long minute = (diff / (60 * 1000) - day * 24 * 60 - hour * 60);
long s = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60);
//输出时间差
System.out.println(hour + "小时" + minute + "分" + s + "秒");
textView2.setText(String.valueOf(hour) + "小时" +String.valueOf(minute)+ "分"+String.valueOf(s)+"秒");
}
catch(Exception e){
}
}
}
catch(Exception e)
{
Log.d("报错", e.toString());
textView2.setText(e.toString());
}
}
}
class TimeThread extends Thread
{
@Override
public void run() {
do {
try
{
Thread.sleep(1000);
Message msg = new Message();
msg.what = 1; //消息(一个整型值)
mHandler.sendMessage(msg);// 每隔1秒发送一个msg给mHandler
} catch (InterruptedException e)
{
e.printStackTrace();
}
} while (true);
}
}
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what)
{
case 1:
long sysTime = System.currentTimeMillis();
CharSequence sysTimeStr = DateFormat.format("kk:mm:ss", sysTime);
textView1.setText(sysTimeStr); //更新时间
break;
default:
break;
}
}
};
}
class MyClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
Date currentTime = new Date();
String date1 = df.format(currentTime);
try {
int I1 = editText1.length();
// pattern matcher /d/d/:/d/d:/d/d
if (I1 == 8) {
CharSequence ed1 = editText1.getText();
String date2 = editText1.getText().toString();//这里报错
try {
Date d1 = df.parse(date1);
Date d2 = df.parse(date2);
// 计算时间差
long diff = (d1.getTime() - d2.getTime());
long day = diff / (1000 * 60 * 60 * 24);
long hour = (diff / (60 * 60 * 1000) - day * 24);
long minute = (diff / (60 * 1000) - day * 24 * 60 - hour * 60);
long s = (diff / 1000 - day * 24 * 60 * 60 - hour * 60
* 60 - minute * 60);
// 输出时间差
System.out
.println(hour + "小时" + minute + "分" + s + "秒");
textView2.setText(hour + "小时" + minute + "分");
} catch (Exception e) {
}
}
} catch (Exception e) {
Log.d("报错", e.toString());
}
}
}
你应该思考一下你报错的地方String date2 = df.format(ed1)