美文网首页
java日期周相关

java日期周相关

作者: forstar | 来源:发表于2017-12-06 10:03 被阅读0次

前段时间,17年11月份,化工项目中,客户提出要有按周统计的报表。所以搜了下日期中周相关的资料整合下。

有两个属性非常重要。

1是默认每年的1号所在的那一周,是当年的第一周。此属性当周跨年时会用到。

2是默认周日是每周的第一天。

这俩个属性根据需要设置好后,周相关的取值与计算就非常简单了。

/*

周跨年时,项目中用的是周末在哪年,本周就算到哪年。如果按照周一在哪年,本周就算到哪年。可以设置以下两个属性:

设置每年7号所在的周为第一周(如果不设置此项,默认是1号,则等同于跨年时,周末在哪年,本周就算到哪年)

cl.setMinimalDaysInFirstWeek(7);

设置每周的第一天为星期一

cl.setFirstDayOfWeek(Calendar.MONDAY);

*/

/**

* 2017.11.16  yk

* 传入日期,返回日期所属的周数

* 规则:按中国习惯,周一到周日为一周。 跨年时,按照周末那天所在的年份,算到那年

* @paramdateStryyyy-MM-dd

* @return  yyyy-WW

*/

public static String getWeekByDate(String dateStr){

SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd");

Calendar cl = Calendar.getInstance();

try{

cl.setTime(sdf.parse(dateStr));

}catch(Exception e){

e.printStackTrace();

}

//设置每周的第一天为星期一

cl.setFirstDayOfWeek(Calendar.MONDAY);

intweek = cl.get(Calendar.WEEK_OF_YEAR);

cl.add(Calendar.DAY_OF_MONTH,-7);

intyear = cl.get(Calendar.YEAR);

if(week

year+=1;

}

//    System.out.println("根据日期获取所属的周数:"+dateStr+":"+year+"年第"+week+"周");

return year+"-"+week;

}

/**

* 2017.11.16  yk

* 根据年份和周数,获取起止日期

* 规则:按中国习惯,周一到周日为一周。 跨年时,按照周末那天所在的年份,算到那年

* @paramyear

* @paramweek

* @return

*/

public static String getDateOfWeek(intyear,intweek) {

SimpleDateFormat format =newSimpleDateFormat("yyyy-MM-dd");

Calendar cl = Calendar.getInstance();

//设置年

cl.set(Calendar.YEAR,year);

//设置每周的第一天为星期一

cl.setFirstDayOfWeek(Calendar.MONDAY);

//设置周数

cl.set(Calendar.WEEK_OF_YEAR,week);

//    得到该周 周一的日期:

cl.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);

String beginDate = format.format(cl.getTime());

//    得到该周 周日的日期:

cl.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);

String endDate = format.format(cl.getTime());

//    System.out.println("根据年份和周数,获取起止日期-------"+year+"年第"+week+"周的起止日期为:"+beginDate+" TO "+endDate);

returnbeginDate+"TO"+endDate;

}

/**

* 2017.11.16  yk

* 根据年份,获取总周数

* 规则:按中国习惯,周一到周日为一周。 跨年时,按照周末那天所在的年份,算到那年

* @paramyear

* @return

*/

public static int getWeeksOfYear(intyear){

Calendar cl = Calendar.getInstance();

//设置每周的第一天为星期一

cl.setFirstDayOfWeek(Calendar.MONDAY);

//设置月日为12月25日

cl.set(year,Calendar.DECEMBER,25);

intweek = cl.get(Calendar.WEEK_OF_YEAR);

//    System.out.println("根据年份查询总周数-----------------:"+year+"年共有"+week+"周");

return week;

}

相关文章

  • Java日期相关操作

    1. Date 大多数方法已经废弃,目前保留且常用的方法如下: 2. Calendar 推荐使用Calendar来...

  • java日期周相关

    前段时间,17年11月份,化工项目中,客户提出要有按周统计的报表。所以搜了下日期中周相关的资料整合下。 有两个属性...

  • Java 日期相关问题

    本文最早收集整理自骆昊的技术专栏,感谢他的分享,放在这里只为了写代码的时候方便参考。后面本人也在不断收集添加其他有...

  • java 日期处理相关

    备忘用(๑•̀ㅂ•́)و✧ Date 基本只剩下这三个不过时且常用的。 Calendar SimpleDateFo...

  • java日期相关处理

    1.去重,累加,排序 2.日期相关操作 ``` python import tensorflow as tf pr...

  • Java日期周模式

    按照公司某项目的需求,定义周模式:每周从周一开始,至少四天在当年的才算第一周 。定义周实体类: 周模式帮助类Wee...

  • java 日期相关Date、SimpleDateFormat、C

    本篇文章主要摘录了4篇文章的内容,原文在文末在java中时间类主要有Date、Calendar、SimpleDat...

  • 日期相关

    1、获取当前日期的标准时间

  • 日期相关

    format: // 对Date的扩展,将 Date 转化为指定格式的String// 月(M)、日(d)、小时(...

  • 日期相关

    # 生成今天的日期 today = datetime.date.today() "parcel_discover_...

网友评论

      本文标题:java日期周相关

      本文链接:https://www.haomeiwen.com/subject/hqkkixtx.html