`

求,java获取时间端问题,谢谢

 
阅读更多
根据当前时间获取上一个30分钟的时间范围, 
 比如现在时间20120808122020,
则需要得到20120808113000--201200808120000,
求java程序,谢谢
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestTime {
 public static void main(String[] args) {
  System.out.println(getTimeArea(null));
 }
 
 public static String getTimeArea(Date date){
  if(date == null){
   date = new Date();
  }
  String year = getBean("yyyy").format(date);
  String month = getBean("MM").format(date);
  String day = getBean("dd").format(date);
  String hour = getBean("HH").format(date);
  String min = getBean("mm").format(date);
  String min_x_1 = "00";
  String min_x_2 = "29";
  String min_y_1 = "30";
  String min_y_2 = "59";
  String sec_default_s = "00";
  String sec_default_e = "59";
  String con = "-";//连接符
  String begin = "";
  String end = "";
  //验证分钟
  if(Integer.parseInt(min)>30){
   begin = year+month+day+hour+min_x_1+sec_default_s;
   end = year+month+day+hour+min_x_2+sec_default_e;
   return begin+con+end;
  }else{
   //先验证是不是在00:00与00:30分钟之间,包含00:00和00:30,如201208081200
   if("00".equals(hour)){
    hour = "23";
    //在零点30分钟之间,验证是不是月初第一天,即day为01
    if("01".equals(day)){
     //月初第一天的凌晨,验证是不是年初第一月 20120101001200
     if("01".equals(month)){
      year = String.valueOf(Integer.parseInt(year)-1);
      month = "12";
      day = "31";
     }else{
      //不是年初第一月 如:20120201001200
      if("03".equals(month)){
       //验证是不是闰年
         Integer yearInt = Integer.parseInt(year);
         if((yearInt % 4 == 0 && yearInt % 100 != 0) || yearInt % 400 == 0){
                        day = "29";
          }else{
                        day = "28";
          }
      }else{
       if("05".equals(month)||"07".equals(month)||"10".equals(month)||"12".equals(month)){
        day = "30";
       }else{
        day = "31";
       }
      }
      
      month = formatDecimal(month);
     }
    }else{
     //不是月初第一天
     day = formatDecimal(day);
    }
   }else{
    //不在零点30分钟之前    
    hour = formatDecimal(hour);
   }
   
   begin = year+month+day+hour+min_y_1+sec_default_s;
   end = year+month+day+hour+min_y_2+sec_default_e;
   return begin+con+end;
  }
 }
 
 public static SimpleDateFormat getBean(String pattern){
  return new SimpleDateFormat(pattern);
 }
 public static String formatDecimal(String data){
  return new DecimalFormat("00").format(Integer.parseInt(data)-1);
 }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics