import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class DateTest {
// 获取当前时间所在年的周数
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 = 2011;
int week = 1;
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)));
System.out.println("---------------------------------------------------");
/*下边是解决年初第一周的前几天有可能也属于上一年的最后的一周的后几天,导致当前时间获取得到的所在周数和实际不符的问题*/
//获取当前年已经过的周数
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setMinimalDaysInFirstWeek(7);
c.setTime(today);
//获取当前年的当前月份
int month = c.get(Calendar.MONTH) + 1;
int year2 = c.get(Calendar.YEAR);
int weekofYear1 = c.get(Calendar.WEEK_OF_YEAR);
System.out.println(weekofYear1);
String yearStr = String.valueOf(year2);
int yearint = Integer.parseInt(yearStr.substring(yearStr.length() - 1, yearStr.length()));
System.out.println(yearint);
if(weekofYear1 > 51 && month == 1){
if(weekofYear1 > 51){
weekofYear1 = 1;
}
}
//当前周数 * 7 是否小于 当日处于一年中的第几天
if(weekofYear1 * 7 < c.get(Calendar.DAY_OF_YEAR)){
weekofYear1++;
}
System.out.println(weekofYear1);
System.out.println("一年中第多少天"+c.get(Calendar.DAY_OF_YEAR));
}
}

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

  1. Java获取一年有多少周、某周的第一天和最后一天.

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

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

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

  3. java当前月份减一个月_Java获取当前时间的上一个月和下一个月,第一天和最后一天,任意时间的第一天和最后一天,任意时间上一个月和下一个月...

    public class CalendarTest { public static void main(String[] args) { // 获取当前年份.月份.日期 Calendar cale = ...

  4. 获取某年某月的第一天和最后一天的时间

    获取一天的第一秒和最后一秒的时间 根据这个月的随机一天获取这个月的第一天和最后一天以及第一秒钟和最后一秒中 LocalDate date = LocalDate.parse(subTime +&quo ...

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

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

  6. Java获取一秒钟前、一分钟前、一小时前、一天前、一周前、一月前、一年前

    1.创建测试类(DateTest1.java) package com.jeff;import java.text.SimpleDateFormat; import java.util.Calenda ...

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

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

  8. Java获取当前时间的上一个月和下一个月,第一天和最后一天,任意时间的第一天和最后一天,任意时间上一个月和下一个月

    /*** 获取当前时间* * @param args*/public static String getNowTime() {Calendar cal = Calendar.getInstance() ...

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

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

最新文章

  1. 1048 Find Coins(二分法解法)
  2. 东北黑木耳 微信公共帐号 销售 批发 分享 交流 东北鸿顺山特产品有限公司
  3. centos6.5_x64远程链接输入正确的账号密码无法登陆
  4. 35. Leetcode 328. 奇偶链表 (链表-双指针)
  5. simulink和psim仿真结果不同_CAE仿真分析规范是什么?涨知识啦!
  6. 抓住指针的精髓,才算掌握了 C 语言的灵魂!
  7. 分页加载PullToRefreshLayout+PullableListView
  8. Android 音视频开发学习思路大纲
  9. 适用于物联网数据共享的区块链节点存储优化方案
  10. 常用连接Linux的SSH工具、SFTP工具
  11. 解决U盘写保护,成功擦除
  12. ios12完美深色模式插件_越狱插件(三)
  13. 计算机应用基础的重点知识,《计算机应用基础知识》重点总结
  14. Centos7磁盘阵列部署与修复
  15. 中国历史上10大经典遗言
  16. html导航栏动态图标,导航栏动态图.html
  17. 1.3一摞烙饼的问题
  18. 计算机四级网络工程师属于什么职称,计算机四级网络工程师和软考网络工程师有什么区别...
  19. 关于基于Linux的电子词典的编写
  20. ElasticSearch 基本原理之全文检索

热门文章

  1. 区域工业互联网市场成绩单,百度智能云开物第二
  2. 【ELM预测】探路者算法优化极限学习机预测(含前后对比)【含Matlab源码 2204期】
  3. What's is new in MariaDB 10.0(MySQL创始人Monty演讲)
  4. 我的一加5刷机基本步骤
  5. Python+QyPt实现便利贴
  6. 陌上花开,可缓缓归矣
  7. 中国互联网生态报告发布
  8. “嗨聊SPACE”项目测试:利用Selenium+Firefox自动化测试对用户注册、登录、上下线提示功能以及页面之间的跳转进行测试(python脚本编写)
  9. 如何与不使用Apple产品的朋友共享iCloud照片
  10. C++学习(三)LHS RHS