java获取本周 上周的所有日期

1 根据当前日期获得所在周的日期区间(周一和周日日期)

    public String getTimeInterval(Date date) {
         Calendar cal = Calendar.getInstance();
         cal.setTime(date);
         // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
         int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天
         if (1 == dayWeek) {
            cal.add(Calendar.DAY_OF_MONTH, -1);
         }
         // System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期
         // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
         cal.setFirstDayOfWeek(Calendar.MONDAY);
         // 获得当前日期是一个星期的第几天
         int day = cal.get(Calendar.DAY_OF_WEEK);
         // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
         cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
         String imptimeBegin = sdf.format(cal.getTime());
         // System.out.println("所在周星期一的日期:" + imptimeBegin);
         cal.add(Calendar.DATE, 6);
         String imptimeEnd = sdf.format(cal.getTime());
         // System.out.println("所在周星期日的日期:" + imptimeEnd);
         return imptimeBegin + "," + imptimeEnd;
    }

2 根据当前日期获得上周的日期区间(上周周一和周日日期)

    public String getLastTimeInterval() {
         Calendar calendar1 = Calendar.getInstance();
         Calendar calendar2 = Calendar.getInstance();
         int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1;
         int offset1 = 1 - dayOfWeek;
         int offset2 = 7 - dayOfWeek;
         calendar1.add(Calendar.DATE, offset1 - 7);
         calendar2.add(Calendar.DATE, offset2 - 7);
         // System.out.println(sdf.format(calendar1.getTime()));// last Monday
         String lastBeginDate = sdf.format(calendar1.getTime());
         // System.out.println(sdf.format(calendar2.getTime()));// last Sunday
         String lastEndDate = sdf.format(calendar2.getTime());
         return lastBeginDate + "," + lastEndDate;
    }

3  获取一周开始到结束的list集合

     public static List<Date> findDates(Date dBegin, Date dEnd)
     {
      List lDate = new ArrayList();
      lDate.add(dBegin);
      Calendar calBegin = Calendar.getInstance();
      // 使用给定的 Date 设置此 Calendar 的时间
      calBegin.setTime(dBegin);
      Calendar calEnd = Calendar.getInstance();
      // 使用给定的 Date 设置此 Calendar 的时间
      calEnd.setTime(dEnd);
      // 测试此日期是否在指定日期之后
      while (dEnd.after(calBegin.getTime()))
      {
       // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
       calBegin.add(Calendar.DAY_OF_MONTH, 1);
       lDate.add(calBegin.getTime());
      }
      return lDate;
     }

4 测试

 public class Text{     public statis void main(string args[]){        String yz_time=getTimeInterval(new Date());//获取本周时间
        String array[]=yz_time.split(",");
        String start_time=array[0];//本周第一天
        String end_time=array[1];  //本周最后一天           //格式化日期
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
          Date dBegin = sdf.parse(start_time);
          Date dEnd = sdf.parse(end_time);
          List<Date> lDate = findDates(dBegin, dEnd);//获取这周所有date
          for (Date date : lDate)
          {
           System.out.println(sdf.format(date));
          }
     }}   
时间: 2024-08-07 19:20:51

java获取本周 上周的所有日期的相关文章

java获取下一天的日期

我们来看看Java怎么获取下一天的日期: 哈哈哈,开玩笑啦,这个只是个段子. "哪怕悲伤有1000种,快乐有1种就够了." 原文地址:https://www.cnblogs.com/yanggb/p/10838417.html

jQuery获取本周的所有时间日期

效果图 CSS代码 ul,li,p{padding:0; margin:0; list-style:none; font-family:"微软雅黑"; font-size:14px;} .div_week{width:900px; margin:20px auto;} #ul_week{overflow:hidden; border-right:1px solid #EAEAEA; width:896px; } #ul_week li p{display:block; } #ul_we

用php获取本周,上周,本月,上月,本季度日期的代码

1 echo date("Ymd",strtotime("now")), "\n"; 2 echo date("Ymd",strtotime("-1 week Monday")), "\n"; 3 echo date("Ymd",strtotime("-1 week Sunday")), "\n"; 4 echo date(&q

Java 获取一定时间范围内的日期序列

以下是获取从2015年2月25到2015年3月08的日期序列的字符串java程序 通过修改程序中的startday和endday就可以调整日期范围 1 String startday = "20150225"; 2 String endday = "20150308"; 3 ArrayList<String> daysarr = new ArrayList<String>(); 4 SimpleDateFormat sdf = new Sim

Java -- 获取当前日期、当月月初日期、月末日期

Learn From:http://blog.csdn.net/sunhuwh/article/details/39161323 public class CalendarTest { public static void main(String[] args) { // 获取当前年份.月份.日期 Calendar cale = null; cale = Calendar.getInstance(); int year = cale.get(Calendar.YEAR); int month =

java获取 昨天 今天 明天的日期

1 Date date=new Date();//取时间 2 Calendar calendar = new GregorianCalendar(); 3 calendar.setTime(date); 4 calendar.add(calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动 5 date=calendar.getTime(); //这个时间就是日期往后推一天的结果 6 SimpleDateFormat formatter = new SimpleDate

SQL SERVER 获取本周的起始截至日期

DECLARE @ThisWeekStartTime NVARCHAR(100),@ThisWeekEndTime NVARCHAR(100)--本周SELECT @ThisWeekStartTime= CONVERT(nvarchar(10), DATEADD(wk, DATEDIFF(wk,0,DATEADD(dd, -1, getdate()) ), 0),121)--本周开始时间SELECT @ThisWeekEndTime= CONVERT(nvarchar(10), DATEADD(

获取本月周次和日期时间段信息

package com.wdcloud.monitoring.common; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import com.wdcloud.monitoring.Model.WeekInfoModel; public class DateUtils {

php获取本周和上周的开始日期和结束日期

<?php header('Content-type: text/html; charset=utf-8'); $date=date('Y-m-d'); //当前日期 $first=1; //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期 $w=date('w',strtotime($date)); //获取当前周的第几天 周日是 0 周一到周六是 1 - 6 $now_start=date('Y-m-d',strtotime("$date -".($w ?