android 计时器或倒计时

时间:2021-12-01 10:20:12

下面代码,只是实现了计时的效果,倒计时根据下面的代码轻微的改动即可


/**
* ClassName: TimeCountDownUtils
* Description TODO 实现年月日时分秒倒计时
* Created by BAI
* Data 2017-07-12.
*/

public class TimeCountDownUtils {

int year = 0;//年
int month = 0;//月
int day = 0;//日
int hour = 0;//时
int minutes = 0;//分
int second = 0;//秒

private Handler mHandler = null;

/**
* yyyy-MM-dd HH:mm:ss
* @param handler
* @param time
*/
public TimeCountDownUtils(Handler handler,String time) {
mHandler = handler;
String ymd = time.split(" ")[0];
String hms = time.split(" ")[1];
year = Integer.parseInt(ymd.split("-")[0]);//年
month = Integer.parseInt(ymd.split("-")[1]);//月
day = Integer.parseInt(ymd.split("-")[2]);//日
hour = Integer.parseInt(hms.split(":")[0]);//时
minutes = Integer.parseInt(hms.split(":")[1]);//分
second = Integer.parseInt(hms.split(":")[2]);//秒
handler.postDelayed(runnable, 1000);
}
Runnable runnable = new Runnable() {
@Override
public void run() {
second ++;
if (second >= 60) {
second =0;
minutes+=1;
if (minutes >= 60) {
minutes =0;
hour+=1;
if (hour >= 24) {
hour =0;
day+=1;
}
}
}
String time = getResultTimeString();
Message msg = new Message();
msg.obj = time;
msg.what = 0x0001;
mHandler.sendMessage(msg);
mHandler.postDelayed(this, 1000);
}
};

public String getResultTimeString(){
String resultTime = "";
String yea = year+"";
String mon = getFormatInt(month);
String da = getFormatInt(day);
String hou =getFormatInt(hour);
String minu =getFormatInt(minutes);
String secon =getFormatInt(second);
//resultTime = yea+"-"+mon+"-"+da+" "+hou+":"+minu+":"+secon;
resultTime =hou+":"+minu+":"+secon;
return resultTime;
}

private String getFormatInt(int time){
String result = "";
if(time<10){
result = "0"+time;
}else{
result = ""+time;
}
return result;
}

}