核心:使用Calendar的add(int field, int amount)方法
Calendar ca = Calendar.getInstance();//得到一個Calendar的實例 ca.setTime(new Date()); //設置時間為當前時間 ca.add(Calendar.YEAR, -1); //年份減1 Date lastMonth = ca.getTime(); //結果 //求前一月ca.add(Calendar.MONTH, -1), //前一天ca.add(Calendar.DATE, -1)
同樣,類似的,求前一月ca.add(Calendar.MONTH, -1),前一天ca.add(Calendar.DATE, -1)
網上有人說月份這樣做是有問題的,比如當前時間是2009-12-31,你在月份上減1變成了2009-12-1”,我試了一下沒有出現這樣的問題,不過印象中好像確實有遇到過這樣的情況,代碼是怎么寫的已經記不清了
Calendar ca = Calendar.getInstance();//得到一個Calendar的實例 ca.set(2009, 11, 31);//月份是從0開始的,所以11表示12月 Date now = ca.getTime(); ca.add(Calendar.MONTH, -1); //月份減1 Date lastMonth = ca.getTime(); //結果 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); System.out.println(sf.format(now)); System.out.println(sf.format(lastMonth));
打印出來的結果是: 2009-12-31
2009-11-30
android代碼如何調用系統日歷?
Intent intent = new Intent();
intent.setComponent(newComponentName("com.android.calendar", "com.android.calendar.LaunchActivity")); startActivity(intent);
try { Intent i = new Intent(); ComponentName cn = null; if (Integer.parseInt(Build.VERSION.SDK) >= 8) { cn = new ComponentName("com.android.calendar","com.android.calendar.LaunchActivity"); } else { cn = new ComponentName("com.google.android.calendar","com.android.calendar.LaunchActivity"); } i.setComponent(cn); startActivity(i); } catch (ActivityNotFoundException e) { // TODO: handle exception Log.e("ActivityNotFoundException", e.toString()); }
我還想給它添加點擊事件,選擇一個日期,然后返回我的代碼.后來在網上找到一個自己寫的gridview的日歷形式,鏈接如下http://download.csdn.net/detail/onlyonecoder/6574379寫的很好。