java获取当前日期的前一天,前一月和前一年
核心:使用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写的很好。