1. 程式人生 > >訂單搶購倒計時

訂單搶購倒計時

![這裡寫圖片描述](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; } }