訂單搶購倒計時
阿新 • • 發佈:2019-01-24
![這裡寫圖片描述](http://img.blog.csdn.net/20170327155251112?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzEyMzI4Njk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
/**
* 搶購倒計時
*
* @author 逗逗
*
*/
public class MainActivity extends Activity {
// 倒計時
private TextView seconds;
private long mMin;// 計算分鐘數
private long mSecond;// 分鐘,秒
private boolean isRun = true;
static String temp;// 全域性賦值
private long sendMax = 15;
private long Max;// 接受計算後的時間
private Handler timeHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super .handleMessage(msg);
if (msg.what == 1) {
computeTime();
long time = Long.valueOf(getSimData()).longValue();
time = mSecond;
Max = sendMax - mMin;
if (Max <= 15 || Max < 0) {
Max = 0;
seconds.setText("都TM時間失效還跑" );
} else {
seconds.setText(Max + "分鐘" + time + "秒");
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seconds = (TextView) findViewById(R.id.seconds);
getStandardDate("1490753279");
mMin = Long.valueOf(getTime()).longValue();
System.out.println("mMinName" + getSimData());
mSecond = Long.valueOf(getSimData()).longValue();
startRun();
}
/**
* 將時間戳轉為代表"距現在多久之前"的字串
*
* @param timeStr
* 時間戳
* @return
*/
public static String getStandardDate(String timeStr) {
try {
long now = System.currentTimeMillis() / 1000;
long publish = Long.parseLong(timeStr);
long diff = now - publish;
long months = diff / (60 * 60 * 24 * 30);
long days = diff / (60 * 60 * 24);
long hours = (diff - days * (60 * 60 * 24)) / (60 * 60);
long minutes = (diff - days * (60 * 60 * 24) - hours * (60 * 60)) / 60;
if (months > 0) {
temp = months + "";
} else if (days > 0) {
temp = days + "";
} else if (hours > 0) {
temp = hours + "";
} else {
temp = minutes + "";
temp = getTime();
}
} catch (Exception e) {
e.printStackTrace();
}
return temp;
}
/**
* 獲取當前時間
*
* @return
*/
public static String getSimData() {
SimpleDateFormat sDateFormat = new SimpleDateFormat("ss");
String date = sDateFormat.format(new Date());
return date;
}
/**
* 開啟倒計時
*/
private void startRun() {
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while (isRun) {
try {
Thread.sleep(1000); // sleep 1000ms
Message message = Message.obtain();
message.what = 1;
timeHandler.sendMessage(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
}
/**
* 倒計時計算
*/
private void computeTime() {
mSecond--;
if (mSecond < 0) {
mMin++;
mSecond = 59;
if (mMin < 0) {
mMin = 59;
}
}
}
public static String getTime() {
return temp;
}
}