我們常見的APP都有倒數日,而想要自己做個APP來計算時間多久,例如跟女友在一起多久,經過一天的研究,終於完成了程式碼如下面,
1.這是在onCreat()呼叫取得天數
//....上面程式碼省略
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView)findViewById(R.id.textView2);
tv.setText("我跟女友在一起時間:\n"+findTime());
}
解釋:
先取得id為textView2的元件,再利用方法setText( ),把字呈現在螢幕上面,我用findTime( )取得天數。
2.在findTime()回傳資料型態為long的天數
private long findTime(){
long temp = 0;
try{
SimpleDateFormat sim = new SimpleDateFormat("yyyy/MM/dd");//定義日期時間格式,一定要進行ParseException的例外處理
Date f = sim.parse("2016/01/02");
long firstmeet = f.getTime();//取得時間的unix時間
Date now = new Date();//取得目前即時的時間
long nowtime = now.getTime();//取得時間的unix時間
temp = (nowtime-firstmeet)/(1000*60*60*24);
}catch(ParseException e){
Toast.makeText(MainActivity.this,"Something is wrong", Toast.LENGTH_SHORT).show();
}
return temp;
}
解釋:
這邊要注意要要在類別裡面 import java.text.SimpleDateFormat; 而不是 import android.icu.text.SimpleDateFormat;因為後者必須要API24以上的SDK才能使用,所以通常都用前者,這裡也要注意("yyyy/mm/dd")參數用的String 型別的字串必須要小寫,不然就會閃退,再利用物件sim的parse方法,參數輸入我跟女友再一起的日期,格式要與上一行一樣,如此就可以把日期轉換成Date型別,在取得目前時間,再把兩個時間都轉換成unix時間就可以進行加減了,但是要注意減出來的是毫秒,必須要除以1000變成秒,再除以60變成分,再除以60變成時,再除以24變成日,最後一步再回傳天數temp變數,就大功造成!!
結果圖如下:
文章標籤
全站熱搜

請問SimpleDateFormat目的是幹嘛的阿?
就是一種時間格式的設定,看你是要"yyyy/MM/dd"或是"yyyy/MM/dd HH:mm:ss"都可以,看你怎樣呈現
就是一種時間格式的設定,看你是要"yyyy/MM/dd"或是"yyyy/MM/dd HH:mm:ss"都可以,看你怎樣呈現