各种日期获取

//获得n天后的日期
public static Date getTime(int day){
    Calendar objCalendar=Calendar.getInstance();
    objCalendar.add(Calendar.DATE,day);
    Date objDate=objCalendar.getTime();
    System.out.print(objDate);
    return objDate;
}
/**
 * 获取N天前的时间
* @param day
 * @return
*/
public static Date getBeforeDays(int day){
    Calendar cal=Calendar.getInstance();
    int inputDayOfYear = cal.get(Calendar.DAY_OF_YEAR);
    cal.set(Calendar.DAY_OF_YEAR , inputDayOfYear-day );
    Date d =cal.getTime();
    return d;
}
/**

*将日期格式的字符串转换成Date类型

*@param date 字符串类型的日期

*/

public static Date Dateformat2(String date) throws ParseException {
    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date mydate=f.parse(date);
    return mydate;
}
/ **

*指定类型方式的字符串日期转换成Date

*/

public static Date format(String date, String pattern) {
    if (pattern == null || pattern.equals("") || pattern.equals("null")) {
        pattern = "yyyy-MM-dd HH:mm:ss";
    }
    if (date == null || date.equals("") || date.equals("null")) {
        return new Date();
    }
    Date d = null;
    try {
        d = new java.text.SimpleDateFormat(pattern).parse(date);
    } catch (ParseException pe) {
    }
    return d;
}
/**

* 得到指定月后(前)的日期 参数传负数即可
* @param month 想得到的时间
* @param dateStr 日期格式必须是yyyy-MM-dd HH:mm:ss
* @return yyyy-MM-dd HH:mm:ss 时间
*/

public static String  getAfterMonth(int month,String dateStr) {
        Calendar c = Calendar.getInstance();//获得一个日历的实例   
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
        Date date = null;   
        try{   
            date = sdf.parse(dateStr);//初始日期   
        }catch(Exception e){  


        }   
        c.setTime(date);//设置日历时间   
        c.add(Calendar.MONTH,month);//在日历的月份上增加6个月   
        String strDate = sdf.format(c.getTime());//的到你想要得6个月后的日期   
        return strDate;
 }
/**

* 取得当前时间H小时后的时间
* @param m
* @return
*/
@SuppressWarnings("static-access")

public static String getCalendarTime(int h) {
    String str = "";
    Calendar cl = Calendar.getInstance();
    cl.add(cl.HOUR_OF_DAY, h);
    str = cl.get(cl.YEAR) + "年" + (cl.get(cl.MONTH) + 1) + "月"
          + (cl.get(cl.DAY_OF_MONTH)) + "日" + (cl.get(cl.HOUR_OF_DAY))
          + "时" + (cl.get(cl.MINUTE)) + "分" + (cl.get(cl.SECOND)) + "秒";
    return str;
}
/**
* yyyy年MM月dd日星期
* @return
*/
@SuppressWarnings("deprecation")
public static String getDate() {
    StringBuffer sb = new StringBuffer();
    Date d = new Date();
    int hours = d.getHours();
    int minute = d.getMinutes();
    String[] weekdays = { "日", "一", "二", "三", "四", "五", "六" };
    sb.append((d.getYear() + 1900));
    sb.append("年");
    sb.append(d.getMonth() + 1);
    sb.append("月");
    sb.append(d.getDate());
    sb.append("日星期");
    sb.append(weekdays[d.getDay()]);
    return sb.toString();
}
/** 

    * 返回两个日期相差的天数
    * @param d1  长的时间 
    * @param d2  短的时间 
    * @return int 
    */  

public static int dispersionDay(String strDate1, String strDate2) {
    int iDay = 0;//记录相差的天数   
    try {
        int index1,index2;
        index1=strDate1.indexOf('-');
        index2=strDate1.lastIndexOf('-');
        int nYear, nMonth, nDay;
        nYear = Integer.parseInt(strDate1.substring(0, index1));
        nMonth = Integer.parseInt(strDate1.substring(index1+1, index2));
        nDay = Integer.parseInt(strDate1.substring(index2+1));
        Calendar objCalendarDate1 = Calendar.getInstance();//此函数new   GregorianCalendar()   
        objCalendarDate1.set(nYear, nMonth, nDay);
               
        index1=strDate2.indexOf('-');
        index2=strDate2.lastIndexOf('-');
      
        nYear = Integer.parseInt(strDate2.substring(0, index1));
        nMonth = Integer.parseInt(strDate2.substring(index1+1, index2));
        nDay = Integer.parseInt(strDate2.substring(index2+1));
        Calendar objCalendarDate2 = Calendar.getInstance();
        objCalendarDate2.set(nYear, nMonth, nDay);

        if (objCalendarDate2.equals(objCalendarDate1))
            return 0;
        if (objCalendarDate2.after(objCalendarDate1)){//如果strDate2>strDate1   
            while (!objCalendarDate2.equals(objCalendarDate1)) {
                objCalendarDate1.add(objCalendarDate1.DATE, 1);
                iDay++;
            }
            iDay = -iDay;// 负号代表 还相距几天,正号代表已过去几天。。。 
        } else{//如果strDate1>strDate2   
            while (!objCalendarDate2.equals(objCalendarDate1)) {
                objCalendarDate2.add(objCalendarDate2.DATE, 1);
                iDay++;
            }
        }
     } catch (Exception e) {
     }
     return iDay;
}
//判断时间是否在某一时间段内

public static boolean IsTimeIn(Date time,Date begin,Date end){
       return time.getTime()>=begin.getTime() && time.getTime()<=end.getTime();
}
//获得本周一的日期
public static Date getMondayOFWeek(){
    int mondayPlus = getMondayPlus();
    GregorianCalendar currentDate = new GregorianCalendar();
    currentDate.add(GregorianCalendar.DATE, mondayPlus);
    Date monday = currentDate.getTime();
return monday;

}
// 获得本周星期日的日期
<pre name="code" class="java">public static  Date getCurrentWeekday() {
    int mondayPlus = getMondayPlus();
    GregorianCalendar currentDate = new GregorianCalendar();
    currentDate.add(GregorianCalendar.DATE, mondayPlus+6);
    Date monday = currentDate.getTime();
    return monday;
}

 
 
 
// 获得上周星期一的日期 
 
public static  Date getPreviousWeekday() {
    int mondayPlus =getMondayPlus();
    GregorianCalendar currentDate = new GregorianCalendar();
    currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * -1);
    Date monday = currentDate.getTime();
    // DateFormat df = DateFormat.getDateInstance();
    // String preMonday = df.format(monday);
    return monday;
}
// 获得上周星期日的日期
public static  Date getPreviousWeekSunday() {
// WEEKS--;
int mondayPlus = getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus -1);
Date monday = currentDate.getTime();
// DateFormat df = DateFormat.getDateInstance();
// String preMonday = df.format(monday);
return monday;
}
//获取当月第一天
public static String getFirstDayOfMonth(){
String str = "";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE,1);//设为当前月的1号
str=sdf.format(lastDate.getTime());
return str;
}

// 计算当月最后一天,返回字符串
public static String getDefaultDay(){
String str = "";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE,1);//设为当前月的1号
lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号
lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天
str=sdf.format(lastDate.getTime());
return str;
}

//获取当天时间
public static String getNowTime(String dateformat){
    Date now = new Date();
    SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);//可以方便地修改日期格式
    String hehe = dateFormat.format(now);
    return hehe;
}

// 获得当前日期与本周日相差的天数
public static int getMondayPlus() {
    Calendar cd = Calendar.getInstance();
    // 获得今天是一周的第几天,星期日是第一天,星期二是第二天……
    int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK)-1;         //因为按中国礼拜一作为第一天所以这里减1
    if (dayOfWeek == 1) {
        return 0;
    } else {
        return 1-dayOfWeek;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值