此例以按選擇日子與現時日子作相減, 日子以微秒計算, 所以用 getTimeInMillis() 取得微秒後相減, 得出結果後再轉為秒, 分, 時, 日.
1000微秒 = 1秒
如要將時分秒設定為 0 用作計算, 可用 clear, 以下面為例, 現時日子可加入以下三句便可將時分秒設定為 0.
rightNow.clear(Calendar.HOUR);
rightNow.clear(Calendar.MINUTE);
rightNow.clear(Calendar.SECOND);
import android.app.DatePickerDialog; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; import java.util.Calendar; import java.util.GregorianCalendar; public class MainActivity extends ActionBarActivity { Calendar rightNow = Calendar.getInstance(); TextView DisplayDate1; TextView DisplayDate2; int cmonth, rmonth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button changeDate = (Button) findViewById(R.id.ChooseDateBtn); DisplayDate1 = (TextView) findViewById(R.id.textView1); DisplayDate2 = (TextView) findViewById(R.id.textView2); changeDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { new DatePickerDialog(MainActivity.this, d, rightNow.get(Calendar.YEAR), rightNow.get(Calendar.MONTH), rightNow.get(Calendar.DAY_OF_MONTH)).show(); } }); } DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { cmonth = monthOfYear + 1; rmonth = rightNow.get(Calendar.MONTH) + 1; Calendar c = new GregorianCalendar(year, monthOfYear, dayOfMonth, rightNow.get(Calendar.HOUR_OF_DAY), rightNow.get(Calendar.MINUTE), rightNow.get(Calendar.SECOND)); long diff = c.getTimeInMillis() - rightNow.getTimeInMillis(); long diffSec = diff / 1000; long diffMins = diff / (60 * 1000); long diffHrs = diff / (60 * 60 * 1000); long diffDays = diff / (24 * 60 * 60 * 1000); DisplayDate1.setText("Choosen date is :" + dayOfMonth + "/" + cmonth + "/" + year + " Millisecond is :" + c.getTimeInMillis() + "\n" + "Current date is :" + rightNow.get(Calendar.DAY_OF_MONTH) + "/" + rmonth + "/" + rightNow.get(Calendar.YEAR) + " Millisecond is :" + rightNow.getTimeInMillis()); DisplayDate2.setText("Date difference in seconds: " + diffSec +"\n"+ "Date difference in minutes: "+diffMins+"\n"+ "Date difference in hours: "+ diffHrs +"\n"+"Date difference in days: " + diffDays); } }; }
沒有留言:
張貼留言