import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
 
 
public class Test {
 
    // 获取当前时间所在年的周数
    public static int getWeekOfYear(Date date) {
        Calendar c = new GregorianCalendar();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.setMinimalDaysInFirstWeek(7);
        c.setTime(date);
 
        return c.get(Calendar.WEEK_OF_YEAR);
    }
 
    // 获取当前时间所在年的最大周数
    public static int getMaxWeekNumOfYear(int year) {
        Calendar c = new GregorianCalendar();
        c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);
 
        return getWeekOfYear(c.getTime());
    }
 
    // 获取某年的第几周的开始日期
    public static Date getFirstDayOfWeek(int year, int week) {
        Calendar c = new GregorianCalendar();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, Calendar.JANUARY);
        c.set(Calendar.DATE, 1);
 
        Calendar cal = (GregorianCalendar) c.clone();
        cal.add(Calendar.DATE, week * 7);
 
        return getFirstDayOfWeek(cal.getTime());
    }
 
    // 获取某年的第几周的结束日期
    public static Date getLastDayOfWeek(int year, int week) {
        Calendar c = new GregorianCalendar();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, Calendar.JANUARY);
        c.set(Calendar.DATE, 1);
 
        Calendar cal = (GregorianCalendar) c.clone();
        cal.add(Calendar.DATE, week * 7);
 
        return getLastDayOfWeek(cal.getTime());
    }
 
    // 获取当前时间所在周的开始日期
    public static Date getFirstDayOfWeek(Date date) {
        Calendar c = new GregorianCalendar();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.setTime(date);
        c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday
        return c.getTime();
    }
 
    // 获取当前时间所在周的结束日期
    public static Date getLastDayOfWeek(Date date) {
        Calendar c = new GregorianCalendar();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.setTime(date);
        c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday
        return c.getTime();
    }
 
    public static void main(String[] args) {
        int year = 2015;
        int week = 27;
 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date today = new Date();
        Calendar c = new GregorianCalendar();
        c.setTime(today);
 
        System.out.println("当前时间:current date = " + sdf.format(today));
        System.out.println("当前第几周:getWeekOfYear = " + getWeekOfYear(today));
        System.out.println("年度总周数:getMaxWeekNumOfYear = " + getMaxWeekNumOfYear(year));
        System.out.println("本周第一天:getFirstDayOfWeek = " + sdf.format(getFirstDayOfWeek(year, week)));
        System.out.println("本周最后一天:getLastDayOfWeek = " + sdf.format(getLastDayOfWeek(year, week)));
        System.out.println("本周第一天:getFirstDayOfWeek = " + sdf.format(getFirstDayOfWeek(today)));
        System.out.println("本周最后一天:getLastDayOfWeek = " + sdf.format(getLastDayOfWeek(today)));
    }
}
 
 
        
        //输出结果:
//        当前时间:current date = 2015-07-07 16:35:07
//        当前第几周:getWeekOfYear = 27
//        年度总周数:getMaxWeekNumOfYear = 52
//        getFirstDayOfWeek = 2015-07-06 16:35:07
//        getLastDayOfWeek = 2015-07-12 16:35:07
//        getFirstDayOfWeek = 2015-07-06 16:35:07
//        getLastDayOfWeek = 2015-07-12 16:35:07

Java获取一年有多少周、某周的第一天和最后一天.相关推荐

  1. linux java读取文件夹下文件名,Java获取Linux上指定文件夹下所有第一级子文件夹...

    说明:需要只获得第一级文件夹目录 package com.sunsheen.jfids.studio.monitor.utils; import java.io.BufferedReader; imp ...

  2. Java获取一年有多少周、某周的第一天和最后一天,当前时间所在当年的实际周数

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.uti ...

  3. JS获取当前年、月、星期的第一天和最后一天

    先封装日期格式化方法 // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y ...

  4. Java获取时间几月第几周

    import java.time.*; import java.util.Calendar; import java.util.Date; import java.util.Locale;/*** @ ...

  5. java 获取当前时间是第几周

    public static void main(String[] args) {//一般使用当前时间戳 System.currentTimeMillis()Current_week(157772160 ...

  6. java获取指定时间为第几周_Java8根据一年中的第几周获得Monday

    指定星期几即可 static LocalDate parse(String text) { DateTimeFormatter formatter = DateTimeFormatter.ofPatt ...

  7. mysql计算某一天所在周或月的第一天和最后一天

    某一天所在周的第一天: 我们知道国外的星期的第一天是从星期天开始的,所以DAYOFWEEK('2017-3-10')函数的第一天是星期天: SELECT CASE WHEN DAYNAME(DATE( ...

  8. java获取时间(今天,昨天,上周第一天,本周第一天,本周最后一天)

    1.获取当前时间(年月日时分秒) Date date = new Date();//获得系统时间.SimpleDateFormat sdf = new SimpleDateFormat(" ...

  9. Java获取下周、本周、上月、本月第一天最后一天

    下周 LocalDateTime nextWeekStart = LocalDateTime.now().plusDays(8 - dayOfWeek.getValue()); nextWeekSta ...

最新文章

  1. 如果去掉UITableView上的section的headerView和footerView的悬浮效果
  2. QT的QAssociativeIterable类的使用
  3. 负载均衡在分布式架构中是怎么玩起来的?
  4. github 检查代码质量_Android(8): 代码质量检查
  5. 设置笔记笔触摸区(Vista)
  6. centos编译安装LNMP
  7. DllRegisterServer调用失败的解决办法
  8. 破解烽火移动HG6201M 破解 超级密码
  9. dwg转换pdf方法
  10. 盈世邮箱服务器pop3,Coremail私有协议为什么比POP3协议、IMAP协议更好
  11. c语言编译器w7,wintc下载|c语言编译器wintc win7/win8兼容版 v2.0下载 64位32位 - 3322软件站...
  12. 外汇EA网格交易策略
  13. 全球与中国Epicor渠道合作伙伴市场现状及未来发展趋势
  14. blowfish加密算法(c实现)
  15. 如何用修灯泡解读IT行业
  16. zcu102网口不通
  17. solaris启动过程详解
  18. 我国智能安防细分市场规模分析
  19. 硬盘分区表丢失怎么恢复
  20. 【探花交友DAY 12 完结】推荐系统

热门文章

  1. 【论文翻译】异构信息网络的领域自适应分类
  2. echarts地图库下载安装
  3. Go语言自学系列 | golang构造函数
  4. BZOJ1128: [POI2008]Lam
  5. BLS12-381 pairing-friendly 曲线
  6. 【转载】我们究竟是如何测量珠峰的?
  7. 9.2 估算活动资源
  8. 微软推出Windows 11 RP Build 22000.1163版 修复打印队列发生错误等问题
  9. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售智能业务对话机器人配置详解与Debugging演示(八十七)
  10. 移动办公oa管理软件的选择指标是什么?