今天在开发中经常遇到要显示多少天后的时间,同时需要有效的显示开始日期跟结束日期,同时在起始日期之间有一个固定的间隔天数,如订酒店或者机票界面中的起始时间的显示,要求结束时间在开始时间后3天,如:开始时间为2015-04-30,结束时间则为2015-05-02.
参考资料 http://hi.baidu.com/laoyang1018/item/8b12bdd070b7de95260ae7b5
贴代码直接看吧
private static int mYear;
private static int mMonth;
private static int mNowDay;
private static int mNextDay;
private static String m_month;
private static String m_day;
// 设置时间方法
public static String StringData(){
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
// 这边定义的年月日变量都要int类型 , 不要问我为什么
mYear = c.get(Calendar.YEAR); // 获取当前年份
mMonth = c.get(Calendar.MONTH) + 1;// 获取当前月份
mNowDay = c.get(Calendar.DAY_OF_MONTH);// 获取当前月份的日期号码
c.set(Calendar.DAY_OF_MONTH, mNowDay+3); // 延后3天
mNextDay = c.get(Calendar.DAY_OF_MONTH);
// 判断延后的日期小于今天的日期,月份加一
if(mNowDay>mNextDay){
mMonth+=1;
}
// 判断延后的月份大于本月的月份,月份设置为一月份,年份加一
if(mMonth>12){
mMonth = 1;
mYear +=1 ;
}
// 测试今天的日期
Log.e("今日时间===>", mYear + "年"+ mMonth +"月" + mNowDay + "日");
// 如果 月份为个位数则加个0在前面
if(mMonth < 10){
m_month = "0" + mMonth ;
} else{
m_month = "" + mMonth ;
}
// 如果 天数为个位数则加个0在前面
if(mNextDay < 10){
m_day = "0" + mNextDay ;
}else{
m_day = "" + mNextDay ;
}
return m_month + "月" + m_day+"日";
}