close

我們常見的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變數,就大功造成!!

結果圖如下:

 

 

 

arrow
arrow

    KV 發表在 痞客邦 留言(2) 人氣()