核心:使用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写的很好。

05-08 15:27