精华内容
下载资源
问答
  • 2018-12-06 11:26:49

    在设计数据模型的时候需要用到年份+周数作为唯一索引,于是就需要判断一个日期是属于哪一年的第几周,本来问题很简单的,但是会涉及到跨年的问题,例如以周一作为一个星期的开始,那么2018-12-30日星期日,属于2018年的第52周,而2018-12-31日星期一,就属于2019年的第1周,因此,只用一个日期属于第几周来判断是会有问题的,下面这个方法里面返回了年份与第几周,可以满足要求。

    public static Map<String,Integer> getWeekAndYear(String date) {
            Map<String,Integer> result =  new HashMap<String,Integer>();
            Calendar cal = Calendar.getInstance();
    
            --设置一周的开始,默认是周日,这里设置成星期一
            cal.setFirstDayOfWeek(Calendar.MONDAY);
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat formatMon = new SimpleDateFormat("MM");
            SimpleDateFormat formatYear = new SimpleDateFormat("yyyy");
            Date d = null;
            try {
                d = format.parse(date);
            } catch (ParseException e) {
                e.printStackTrace();
            }
    
            cal.setTime(d);
            int month = Integer.valueOf(formatMon.format(d));
            int year = Integer.valueOf(formatYear.format(d));
            
            int week = cal.get(Calendar.WEEK_OF_YEAR);
            result.put("week", week);
            if(week == 1 && month == 12){
                result.put("year", year + 1);
            }else{
    
                result.put("year", year);
            }
            
            return result;
        }

     

    更多相关内容
  • js代码-输入年月日,判断这是这一年的第几个周
  • 输入一用户指定的日期,输出这日期是这一年的第几周的第天。
  • hive计算一年的第几周

    千次阅读 2021-01-19 11:01:09
    函数weekofyear 可以直接计算当前属于年的第几周 对于跨年,以当前所在年天数多的年为准。即一大于等于4天时间在上一年,则为上一年的最后一,否则为新年的第一 查询语句 查询结果 附日历 ...

    函数 weekofyear 可以直接计算当前周属于年的第几周

    对于跨年周,以当前周所在年天数多的年为准。即一周大于等于4天时间在上一年,则为上一年的最后一周,否则为新年的第一周

    查询语句

    查询结果

    附日历

       

    以上 周 指自然周(周一到周日为一周)

    业务需要,我们的周为业务周,周日到周六为一周,判断业务周围年的第几周,周日这天需要特殊处理。

    如果是非跨年周,周日直接算作自然周所在周的下一周;

    如果是跨年周,周日所在周分两种情况,1跨年周天数在新的一年天数较多,比如2018年的这种,就算做新年的第一周;2如果跨年周天数所在上一年天数较多,比如2021年这种情况,则算在上一年的最后一周

    实现逻辑(mm_week是重点逻辑)

    select
            datekey
            ,date_cn
            ,dayofweek
            ,dayofweek_cn
            ,week ##自然周int
            ,year ##当前年int
            ,month
            ,day
            ,quarter
        	,mm_week_begin_date ##业务周开始时间(周日)
      		,mm_week_end_date ##业务周结束时间(周六)
      		,(case
                ##是周日&&周跨年&&周所在前一年的天数较多,算作前一年的最后一周
    		  	when cast(dayofweek as int) = 7 and substr(mm_week_begin_date,1,4) != substr(mm_week_end_date,1,4) and year(date_sub(next_day(date,'MO'),4)) = substr(mm_week_begin_date,1,4) then week + 1
                ##是周日&&周跨年&&周所在新一年的天数较多(因为 !周所在前一年的天数较多 所以 周所在新一年的天数较多),算作新年的第一周
    		  	when cast(dayofweek as int) = 7 and year(date_sub(next_day(date,'MO'),4)) != substr(mm_week_begin_date,1,4)  then 1
                ##是周日 && !周跨年 算作下一周
    		 	when cast(dayofweek as int) = 7 and year(date_sub(next_day(date,'MO'),4)) = substr(mm_week_begin_date,1,4) then week + 1
    		 	else week
    		  end) as mm_week
      		,(case
    		  	when substr(mm_week_begin_date,1,4) != substr(mm_week_end_date,1,4) and year(date_sub(next_day(date,'MO'),4)) = substr(mm_week_begin_date,1,4) then substr(mm_week_begin_date,1,4)
    		 	else year
    		  end) as mm_year
        from dim.dim_date
        where 
        	datekey between $now.datekey and $endnow.datekey

     

     

    展开全文
  • @brief 计算今天是一年的第几周 @param [in] nYear 年 @param [in] nMonth 月 @param [in] nDate 日 @param [in] nWeek 星期 @return uint16_t */ uint16_t Cal_YearWeek(int nYear, int nMonth, int nDate...
    /*!
     @brief 计算今天是一年的第几周
     @param [in] nYear  年
     @param [in] nMonth 月
     @param [in] nDate  日
     @param [in] nWeek  星期几
     @return uint16_t
     */
    uint16_t Cal_YearWeek(int nYear, int nMonth, int nDate, int nWeek)
    {
        uint16_t uYearWeek;
    
        int nWeekCnt = 0;
        int nWeekRemain = 0;
        int nCount = 0;
        
        switch(nMonth-1)
        {
            case 11: nCount += 30;
            case 10: nCount += 31;
            case 9:  nCount += 30;
            case 8:  nCount += 31;
            case 7:  nCount += 31;
            case 6:  nCount += 30;
            case 5:  nCount += 31;
            case 4:  nCount += 30;
            case 3:  nCount += 31;
            case 2:
                if((nYear%4 == 0 && nYear %100 != 0) || nYear%400 == 0)
                {
                    nCount += 29;
                }
                else
                {
                    nCount += 28;
                }
            case 1:  nCount += 31;
            default: break;
        }
    
        // 根据当前天数计算属于一年的第几周
        nCount += nDate;
        nWeekCnt = (nCount + (7 - nWeek))/7;
        nWeekRemain = (nCount + (7 - nWeek))%7;
        uYearWeek = nWeekCnt + ((nWeekRemain == 0) ? 0 : 1);
        
        return uYearWeek;
    }
    
    展开全文
  • 最近接了一项目,其中有一需求是用php获取一年几周以及每周开始日期和接触日期。在网上找些资料没有合适的,于是自己做了一份,下面通过两种方式实现PHP获取一年几周以及每周开始日期和结束日期代码一:header...

    最近接了一个项目,其中有一需求是用php获取一年有几周以及每周开始日期和接触日期。在网上找些资料没有合适的,于是自己做了一份,下面通过两种方式实现PHP获取一年有几周以及每周开始日期和结束日期

    代码一:

    header("Content-type:text/html;charset=utf-8");

    date_default_timezone_set("Asia/Shanghai");

    $year = (int)$_GET['year'];

    $week = (int)$_GET['week'];

    $weeks = date("W", mktime(0, 0, 0, 12, 28, $year));

    echo $year . '年一共有' . $weeks . '周
    ';

    if ($week > $weeks || $week <= 0)

    {

    $week = 1;

    }

    if ($week < 10)

    {

    $week = '0' . $week;

    }

    $timestamp['start'] = strtotime($year . 'W' . $week);

    $timestamp['end'] = strtotime('+1 week -1 day', $timestamp['start']);

    echo $year . '年第' . $week . '周开始时间戳:' . $timestamp['start'] . '
    ';

    echo $year . '年第' . $week . '周结束时间戳:' . $timestamp['end'] . '
    ';

    echo $year . '年第' . $week . '周开始日期:' . date("Y-m-d", $timestamp['start']) . '
    ';

    echo $year . '年第' . $week . '周结束日期:' . date("Y-m-d", $timestamp['end']);

    ?>

    代码二:

    header("Content-type:text/html;charset=utf-8");

    function getIsoWeeksInYear($year)

    {

    $date = new DateTime;

    $date->setISODate($year, 53);

    return ($date->format("W") === "53" ? 53 : 52);

    }

    function weekday($custom_date)

    {

    $week_start = date('d-m-Y', strtotime('this week monday', $custom_date));

    $week_end = date('d-m-Y', strtotime('this week sunday', $custom_date));

    $week_array[0] = $week_start;

    $week_array[1] = $week_end;

    return $week_array;

    }

    echo '
    Weeks in 2013
    ' . getIsoWeeksInYear(2013);

    $weekday = weekday(strtotime(date('d-m-Y', strtotime('5-8-2013'))));

    echo '
    10-8-2013';

    echo '
    Start: ' . $weekday[0];

    echo '
    End: ' . $weekday[1];

    ?>

    以上本文的全部内容,希望对大家学习PHP获取一年有几周以及每周开始日期和结束日期,有所帮助。

    展开全文
  • Java中一年几周的计算

    万次阅读 2016-09-23 10:03:12
    但因为52总共364天,而平年是365天,闰年是366天,如果一年只有52的话,就会差天。所以每过年,就会出现一年有53。比如2017年12月31日就位于当年第53: cal.setFirstDayOfWeek(Calendar.MONDAY); cal....
  • 某日期是一年的第天,第几周,日期查周数,查天数;第天反查日期 ,周数反查日期.
  • 一年几周

    千次阅读 2016-08-01 15:33:05
    2016年第一周几号开始:据出国留学网万年历可知,2016年的第一天是周五(1月日),第一周末是1月3日,第一周一是1月4日(农历十一月廿二)。因此,2016年第一从1月4号开始。  2016年有多少周末  从2016年...
  • 按照习惯,跨年的周中的在哪一年的天数多就算哪一年, 可以通过以下sql判断跨年的属于哪一年,实现得到前一天所在的年 select year(date_sub(next_day(date_sub(current_date,1),'MO'),4))*100+weekof...
  • date def all_weeks(year): '''计算一年内所有的具体日期,每周都是7天,可能最后一到 下年 week_date 输出如{1: ['20181231', '20190101', '20190102', '20190103', '20190104', '20190105', '20190106'],...} ...
  • 主要介绍了Java实现计算一月有多少天和多少,本文直接给出实例代码,需要的朋友可以参考下
  • 满意答案owetj推荐于 2016.08.21采纳率:55%等级:9已帮助:863人计算一年有多少个周的思路:首先,每年至少有52个周,至多有53个周,取决于周一是在哪年(也可以定位周日,这个是由需求决定的),以下是详细代码,...
  • 1.计算第几周 selectdatepart(wk,'2020-12-31') 第几周 2.计算星期 select case datepart(dw,getdate()) when 1 then '星期天 ' when 2 then '星期一 ' when 3 then '星期二 ' when 4 then '星期三 '...
  • 计算一年有多少个周个周的开始日期和结束日期是什么
  • c# 计算一年有多少

    千次阅读 2020-01-02 09:26:15
    前两天计算获取2019有多少,现有的代码算出来有54,看的我一脸懵逼。 以周一为每周的第一天 public static int GetYearWeekCount(int year) { var dateTime = DateTime.Parse(year + "-01-01"); var ...
  • //当这一年的1月1日为周日时则本年有54,否则没有54,没有则去除第54的提示 var _week = date.getDay(); if(_week!=0){//一年53情况 if(weeks==54){ return '今年没有54'; } var cnt=0;// 获取距离周末的...
  • // 一年第一天是周几 var first = new Date(year, 0, 1).getDay() if (first == 1) { first = 0 } else if (first == 0) { first = 1 } else { first = 8 - first } // 计算一年有多少天 if ((year % 4 =...
  • = year2) //同一年 103 {104 int timeDistance = 0;105 for(int i = year1 ; i ; i ++)106 {107 if(i%4==0 && i%100!=0 || i%400==0) //闰年 108 {109 timeDistance += 366;110 }111 else //不是闰年 112 {113 ...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 'YYYYMMDD'), 'yyyyiw') as week, --oracle求当年的第几周 #常用,但是有一问题,比如20181231是周一,但是却计算结果为201801,即2018第一内。 to_char(TO_DATE('20110101', 'YYYYMMDD'), 'yyyyww') as week2...
  • php判断某日期是哪一年的第几周

    千次阅读 2015-03-15 11:22:31
    在判断某一天是哪一年的第几周的时候,根据采用的国际标准(忘了叫什么名字了),年首或者年末的那几天有可能不属于今年的第一或者最后一。 上代码: echo date("YW",strtotime("20141229"))."\n"; echo ...
  • 刚开始准备投入这行业是2020年8月的时候,当时还是大三下学期,一转眼一年过去了,但是本菜鸡还是没有啥长进!这的活干完了,乘着有点时间但是上班也不能学习别的东西来总结记录一波 提示:以下是本篇文章正文...
  • 返回(XX年,一年中的第几周,这一天是周几) >>> from datetime import datetime >>> datetime.now().isocalendar() # 今年2021年;第173; 今天2021年04月28日 (2021, 17, 3) >>...
  • 前言业务有一个需求,选择了某一年后需要生成一个下拉列表让用户可以选择这一年各个周,然后前端产生这个周起始和结束的时间(周一早上00:00:00到周日晚上00:00:00),发送给后端接口获取所选周的数据。操作项目中为了...
  • 比如 我有一是 4月的第2 那么这一是这一年的第多少呢?</p>
  • * 取得一年中周信息以及学期中周信息,根据指定时间取得信息 * */ class Week{ private $term_last = 1; //代表上学期 用于可能的学期分表联动 private $term_naxt = 2; //代表下学期 用于可能的学期分表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,562
精华内容 30,624
关键字:

一年几个工作周

友情链接: haowaixianjiema.rar