精华内容
下载资源
问答
  • 就把本周开始日期当做条件计算出当前日期第几周 // 周跨月也是如此, 每个月有多少周,是根据每月有几个星期一来计算的…(以2019-4-29 – 2019-5-5周为例,周一是4月29号 星期天为5与5号,周一在4月那这个周跨月,算四...

    第一步 先根据当前日期时间 计算出本周的开始时间与结束日期
    第二步 判断当前日期大于等于本周开始日期,并且当前日期小于等于本周结束日期,
    就把本周开始日期当做条件计算出当前日期是第几周
    // 周跨月也是如此, 每个月有多少周,是根据每月有几个星期一来计算的…(以2019-4-29 – 2019-5-5周为例,周一是4月29号 星期天为5与5号,周一在4月那这个周跨月,算四月的第5周)

    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
    Date ast = new Date();//当前日期时间
    Calendar cal = Calendar.getInstance(); //先根据当前日期时间计算出本周的-
    开始时间,与结束时间
    cal.setTime(ast);
    // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
    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());
    // 所在周星期一的日期:" + imptimeBegin);
    cal.add(Calendar.DATE, 6);
    String imptimeEnd = sdf.format(cal.getTime());
    // “所在周星期日的日期:” + imptimeEnd);
    String currentTime = sdf.format(ast);
    Date start= sdf.parse(imptimeBegin);
    Date end= sdf.parse(imptimeEnd);
    Date current= sdf.parse(currentTime);

    		Calendar date=Calendar.getInstance();//当前日期时间,是本月第几周
    		date.setFirstDayOfWeek(Calendar.MONDAY);//设置周以星期一开始
    		date.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);//设置当前日期是星期几      设置星期一
    		date.setMinimalDaysInFirstWeek(7);//
    		if (start.getTime() <=current.getTime() && end.getTime() >= current.getTime()) {
    			date.setTime(start);//判断当前日期大于等于本周开始日期,并且当前日期小于等于本周结束日期,就把本周开始日期当做条件计算出当前日期是第几周
            }
    		date.setTimeZone(TimeZone.getTimeZone("GMT+8"));
    		int week = date.get(Calendar.WEEK_OF_MONTH);//获取到当前时间是第几周, 与跨月周
    
    展开全文
  • 判断当前日期是星期: 这个是转载来的方法,里面的getYear()、getMonth()、getDay()方法已经过期,再往下有个我自己写的方法。     需要导入的包: import java.text.SimpleDateFormat; import java.util....

     判断当前日期是星期几:

    这个是转载来的方法,里面的getYear()、getMonth()、getDay()方法已经过期,再往下有个我自己写的方法。

     

     

    需要导入的包:

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    	public static int dayForWeek(String pTime) throws Throwable {
    		
    		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    		
    		Date tmpDate = format.parse(pTime);
    		
    		Calendar cal = new GregorianCalendar();
    		
    		cal.set(tmpDate.getYear(), tmpDate.getMonth(), tmpDate.getDay());
    		
    		return cal.get(Calendar.DAY_OF_WEEK);
    	}

     

    自己写的方法:

        /*
    	 * 传入的日期转换成星期几
    	 */
    	public static String dateToWeekday(Date changeDate){
    		String[] weekdays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
    		if(changeDate == null) {
    			throw new MyException("传入时间为Null");
    		}
    		Calendar cal = Calendar.getInstance();
    		cal.setTime(changeDate);
    		int numOfWeek = cal.get(Calendar.DAY_OF_WEEK) - 1;
    		return weekdays[numOfWeek];
    	}

    判断当前日期是当年第几周:

    String today = "2013-01-14";  
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
    Date date = null;  
    try {  
        date = format.parse(today);  
    } catch (ParseException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
    }  
      
    Calendar calendar = Calendar.getInstance();  
    calendar.setFirstDayOfWeek(Calendar.MONDAY);  
    calendar.setTime(date);  
      
    System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); 
    
    

    用到判断日期属于当年的第几周,用了一个有点复杂的代码。看Calendar类时,看到了WEEK_OF_YEAR,很实用。但是用时又出现了点小问题,比如2010-01-03,返回的结果是2(即2010年的第二个星期),原因是美国是以周日为每周的第一天。

      我想到了更改星期的起始日,setFirstDayOfWeek(int value),传了一个1,想把周一设成第一天,但是没有起到效果。查文档后改成了Calendar.MONDAY就好使了,却不太清楚为什么用1不好使,用Calendar.MONDAY就行呢?

      

      补:又查看了一下“常量字段值”,发现MONDAY的值根本就不是想当然的1,而是2。

      SUNDAY :1

      MONDYA :2

      TUESDAY :3

      WEDNESDAY :4

      THURSDAY : 5

      FRIDAY : 6

      SATURDAY :7

    展开全文
  • --获取当前日期是本月的第几周 --测试:select dbo.getMonthWeek(getdate()) 结果:10月的第2周 CREATE function [dbo].[getMonthWeek](@d datetime) returns varchar(20) as begin declare @retur...

    原文转载链接找不着了。

    以下问转载内容:

    第一种:

     

    --获取当前日期是本月的第几周
    --测试:select dbo.getMonthWeek(getdate()) 结果:10月的第2周
    CREATE function [dbo].[getMonthWeek](@d datetime)
    returns varchar(20)
    as
    begin
    declare @returns varchar(20),
                  @monthfirstDay datetime,
                  @firstMondy datetime
    
    select @monthfirstDay=left(convert(varchar,@d,23),7)+'-01'
    
    if not exists(select 1 
                         from master.dbo.spt_values
                         where type=N'P' and number between 0 and datediff(d,@monthfirstDay,@d)
                         and datepart(dw,dateadd(d,number,@monthfirstDay))=2)
    begin
      select @monthfirstDay=dateadd(mm,-1,@monthfirstDay)
    end
    
      ;with t as(select 'days'=dateadd(d,number,@monthfirstDay)
                       from master.dbo.spt_values
                       where type=N'P' and number<=7)
       select @firstMondy=min([days]) 
        from t
        where datepart(dw,[days])=2
    
    select @returns=rtrim(datepart(mm,@monthfirstDay))+'月的第'+rtrim(datediff(d,@firstMondy,@d)/7+1)+'周'
    
    return @returns
    end

    第二种:

     

     

    --获取当前日期是本月的第几周
    --测试:select dbo.WeekOfMonth(getDate());结果:2
    CREATE   FUNCTION   [dbo].[WeekOfMonth](@day datetime)     
    RETURNS int  
    AS   
    begin  
       
    ----declare @day datetime   
    declare @num int  
    declare @Start datetime  
    declare @dd int  
    declare @dayofweek char(8)  
    declare @dayofweek_num char(8)  
    declare @startWeekDays int  
    ---set @day='2009-07-05'   
    if datepart(dd,@day)=1  
    return 1  
    else  
    set @Start= (SELECT   DATEADD(mm,   DATEDIFF(mm,0,@day),   0)) --一个月第一天的   
    set @dayofweek= (datename(weekday,@Start)) ---得到本月第一天是周几   
    set @dayofweek_num=(select (case @dayofweek when '星期一' then 2  
    when '星期二' then 3  
    when '星期三' then 4  
    when '星期四' then 5  
    when '星期五' then 6  
    when '星期六' then 7  
    when '星期日' then 1  
    end))  
    set @dayofweek_num= 7-@dayofweek_num+1 ---得到本月的第一周一共有几天   
    ---print @dayofweek_num   
       set @dd=datepart(dd,@day) ----得到今天是这个月的第几天   
    --print @dd   
    if @dd<=@dayofweek_num --小于前一周的天数   
    return 1  
    else   
    set @dd=@dd-@dayofweek_num  
    if @dd % 7=0  
         begin  
           set @num=@dd / 7  
            return @num+1  
              
         end  
       else --if @dd % 7<>0   
          
         set @num=@dd / 7  
    set @num=@num+1+1  
           return @num  
    end 
    

     

     

    展开全文
  • 最近在做项目的过程中遇到了一个问题,就是我利用java的日期工具类获取周数的时候发现跟数据库的周数(特别是年与年的临界值)对应不上,故就做了一些分析,发现这里面... // 每年的最少有天 odps函数 weekofye

    最近在做项目的过程中遇到了一个问题,就是我利用java的日期工具类获取周数的时候发现跟数据库的周数(特别是年与年的临界值)对应不上,故就做了一些分析,发现这里面还是有些玄机的。在获取周数的时候有两个重要的参数

      //设置周一是一周的开始
      calendar.setFirstDayOfWeek(Calendar.MONDAY);
      // 每年的第一周最少有几天   odps函数  weekofyear  4天以上
      calendar.setMinimalDaysInFirstWeek(4);

    1、设置 周一作为没周的第一天,每年的第一周最少包含4天

        /**
         *  根据日期字符串获取是当年的第几周
         * @param date_str  格式 yyyy-MM-dd
         * @return
         */
        public static Integer getWeekOfYear(String date_str) {
            try {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                Date date = format.parse(date_str);
                Calendar calendar = Calendar.getInstance();
        //        设置周一是一周的开始
                calendar.setFirstDayOfWeek(Calendar.MONDAY);
        //        每年的第一周最少有几天   odps函数  weekofyear  4天以上
                calendar.setMinimalDaysInFirstWeek(4);
                calendar.setTime(date);
                return calendar.get(Calendar.WEEK_OF_YEAR);
            } catch (Exception e) {
                return null;
            }
    
        }
            System.out.println("2017-01-01>>>>>>>>"+getWeekOfYear("2017-01-01"));
            System.out.println("2017-01-02>>>>>>>>"+getWeekOfYear("2017-01-02"));
    
            System.out.println("2017-11-12>>>>>>>>"+getWeekOfYear("2017-11-12"));
            System.out.println("2017-11-13>>>>>>>>"+getWeekOfYear("2017-11-13"));
    
            System.out.println("2016-05-01>>>>>>>>"+getWeekOfYear("2016-05-01"));
            System.out.println("2016-05-02>>>>>>>>"+getWeekOfYear("2016-05-02"));
    
            System.out.println("2017-12-31>>>>>>>>"+getWeekOfYear("2017-12-31"));
            System.out.println("2018-01-01>>>>>>>>"+getWeekOfYear("2018-01-01"));
            System.out.println("2014-12-29>>>>>>>>"+getWeekOfYear("2014-12-29")); //1
            System.out.println("2014-12-31>>>>>>>>"+getWeekOfYear("2014-12-31")); //1
            System.out.println("2015-12-29>>>>>>>>"+getWeekOfYear("2015-12-29")); //53

    得到

    2017-01-01>>>>>>>>52
    2017-01-02>>>>>>>>1
    2017-11-12>>>>>>>>45
    2017-11-13>>>>>>>>46
    2016-05-01>>>>>>>>17
    2016-05-02>>>>>>>>18
    2017-12-31>>>>>>>>52
    2018-01-01>>>>>>>>1
    2014-12-29>>>>>>>>1
    2014-12-31>>>>>>>>1
    2015-12-29>>>>>>>>53

    2、不进行任何设置

        /**
         *  根据日期字符串获取是当年的第几周
         * @param date_str  格式 yyyy-MM-dd
         * @return
         */
        public static Integer getWeekOfYear(String date_str) {
            try {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                Date date = format.parse(date_str);
                Calendar calendar = Calendar.getInstance();
        //        设置周一是一周的开始
    //            calendar.setFirstDayOfWeek(Calendar.MONDAY);
        //        每年的第一周最少有几天   odps函数  weekofyear  4天以上
    //            calendar.setMinimalDaysInFirstWeek(4);
                calendar.setTime(date);
                return calendar.get(Calendar.WEEK_OF_YEAR);
            } catch (Exception e) {
                return null;
            }
    
        }

    调用

            System.out.println("2017-01-01>>>>>>>>"+getWeekOfYear("2017-01-01"));
            System.out.println("2017-01-02>>>>>>>>"+getWeekOfYear("2017-01-02"));
    
            System.out.println("2017-11-12>>>>>>>>"+getWeekOfYear("2017-11-12"));
            System.out.println("2017-11-13>>>>>>>>"+getWeekOfYear("2017-11-13"));
    
            System.out.println("2016-05-01>>>>>>>>"+getWeekOfYear("2016-05-01"));
            System.out.println("2016-05-02>>>>>>>>"+getWeekOfYear("2016-05-02"));
    
            System.out.println("2017-12-31>>>>>>>>"+getWeekOfYear("2017-12-31"));
            System.out.println("2018-01-01>>>>>>>>"+getWeekOfYear("2018-01-01"));
            System.out.println("2014-12-29>>>>>>>>"+getWeekOfYear("2014-12-29")); //1
            System.out.println("2014-12-31>>>>>>>>"+getWeekOfYear("2014-12-31")); //1
            System.out.println("2015-12-29>>>>>>>>"+getWeekOfYear("2015-12-29")); //53

    得到

    2017-01-01>>>>>>>>1
    2017-01-02>>>>>>>>1
    2017-11-12>>>>>>>>46
    2017-11-13>>>>>>>>46
    2016-05-01>>>>>>>>19
    2016-05-02>>>>>>>>19
    2017-12-31>>>>>>>>1
    2018-01-01>>>>>>>>1
    2014-12-29>>>>>>>>1
    2014-12-31>>>>>>>>1
    2015-12-29>>>>>>>>1

    总结:
    这两个值设置的参数不一样获取的周数也就不一样,因为默认情况下calendar是把周日作为每周的第一天。如果在进行用周数进行查询或教研的逻辑时,一定要约定好设置参数,要不然就可能得不到自己想要的数据。

    展开全文
  • 可以查看帮助手册 ...显示当年的第几周 date +%V // %V ISO week number, with Monday as first day of week (01..53) 显示当年的第几天 date +%j 显示年份 date +%G ...
  • 来自:http://blog.csdn.net/allen3010/article/details/6828643 ///  /// 取指定日期是一年中的第几周  ///  /// 给定的日期  /// 数字 一年中的第几周  private static int DatePart(DateTime d
  • 获取本月第几周 function getMonthWeek(a, b, c) { /** * a = d = 当前日期 * b = 6 - w = 当前周的还有几天过完(不算今天) * a + b 的和在除以7 就是当天是当前月份的第几周 */ var date = new Date(a, ...
  • 要想通过当前的日期获得为当月的第几周,可以直接调用下面的getMonthWeek(Y,M,D)方法,方法里面要传入三个值分别为当前日期的年、月、日三个值 1 2 3 4 5 6 7 8   //判断...
  • 月初跟月末看当前日期所在的周三是月份的,就算作是月份的。 Map getGroupDate(@Param(value="inputDate") Date inputDate); <![CDATA[ select group_date groupDate from ( SELECT @cdate input_...
  • * 实现当前日期是当年的第几周,再向前和向后推几周 * js数组保存当前日期的前后两周(共五周的数据) * */ var initSearchMajorChanges = function(){ //实现当前日期是当年的第几周,再向前和向后推几周,js...
  • java获得当前日期是今年的第几周,以及这周的开始日期的方法 直接上代码,备份使用 时间戳,长整型存储 long startTime1 = 1530613938532l; Calendar calendar = Calendar.getInstance(); calendar....
  • oracle查看日期第几周

    千次阅读 2019-12-22 20:26:56
    oracle查看日期第几周 系统当前时间是多少周,就是是今年的第几个星期 www.2cto.com select to_char(sysdate,'ww') ,to_char(sysdate,'iw') from dual; select to_char(sysdate,...
  • PHP获取当前日期是一年中的第几周

    千次阅读 2019-12-06 17:19:36
    * 获取当前日期是一年中的第几周 * @param string $date * @return float */ public static function getWeeks($date = '') { /** * 2007年 第一周 是 01-01 到 01 - 07 因为第一天就是星期一 6 ...
  • 计算当前日期是本年的第几周

    万次阅读 2013-10-10 16:53:54
    其中有关第几周的计算,在WIKI上有如下描述: 日历星期和日表示法 可以用2位数表示本年内第几个日历星期,再加上一位数表示日历星期内第几天,但日历星期前要加上一个大写字母W,如2004年5月3日可写成2004-...
  • oracle日期函数IW和WW 的区别 oracle求当前日期是今年第几天,第几周,第几月,第几季度--转自csdn一位朋WW: 每年的1月1日作为当年的第一周的第一天(不管当年的1月1日是星期几); 比如:2011/01/01 是周六, 在...
  • Oracle 获取当前日期是月的第几周

    千次阅读 2019-05-05 17:54:00
    函数FUNC_GET_WEEKOFMONTH:IW 是年的自然... WW是年的一天起开始算7天为一 FUNCTION FUNC_GET_WEEKOFMONTH (V_PSD DATE) RETURN NUMBER IS N_WEEK NUMBER (11) := 0; BEGIN SELECT TO_CHAR (V_PSD, 'IW') - TO...
  • time.hour, minutes=now_time.minute, seconds=now_time.second) # 当前日期所在周的周日 week_end_time = week_start_time + timedelta(days=6, hours=23, minutes=59, seconds=59) # 当前日期处于本月第几周 ...
  • //设置星期一为一开始的一天 calendar.setFirstDayOfWeek(Calendar.MONDAY); //设置在一年中一个星期所需最少天数 calendar.setMinimalDaysInFirstWeek(4); //获得当前的年 int weekYear = calendar.get...
  • VC++计算某个日期第几周

    千次阅读 2017-08-10 15:07:06
    本文提供了一个计算某个日期是当年第几周的函数
  • JS给获取某日期是本年的第几周

    千次阅读 2019-03-21 16:26:51
    小编想知道我给一个日期获得当前日期是当前年份的第几周,小编在百度上搜了很多,他们给的代码都不准确,会差1周。所以不适合小编的需求,最后小编还是静下心来,自己写了一个方法。 下面是我的控件:特点一周的最末...
  • 计算当前日期是本年度的第几周

    千次阅读 2014-02-16 16:45:16
    一、计算公式 先算出今天是今年的第几天,再除以7,...其中有关第几周的计算,在WIKI上有如下描述:日历星期和日表示法可以用2位数表示本年内第几个日历星期,再加上一位数表示日历星期内第几天,但日历星期前要加上

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,011
精华内容 22,004
关键字:

当前日期是第几周