/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
* (可正可负)
* @return
*/
public static Date getAnotherDate(Date date, int num) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DAY_OF_YEAR, num);
return c.getTime();
}
/** */
/**
* 取得某月的的最后一天
*
* @param year
* @param month
* @return
*/
public static Date getLastDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);// 年
cal.set(Calendar.MONTH, month - 1);// 月,因为Calendar里的月是从0开始,所以要减1
cal.set(Calendar.DATE, 1);// 日,设为一号
cal.add(Calendar.MONTH, 1);// 月份加一,得到下个月的一号
cal.add(Calendar.DATE, -1);// 下一个月减一为本月最后一天
return cal.getTime();// 获得月末是几号
}
/** */
/**
* 取得某天是一年中的多少周
*
* @param date
* @return
*/
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);
}
/** */
/**
* 取得某天所在周的第一天
*
* @param date
* @return
*/
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());
return c.getTime();
}
/** */
/**
* 取得某天所在周的最后一天
*
* @param date
* @return
*/
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);
return c.getTime();
}
/** */
/**
* 取得某一年共有多少周
*
* @param year
* @return
*/
public static int getMaxWeekNumOfYear(int year) {
Calendar c = new GregorianCalendar();
c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);
return getWeekOfYear(c.getTime());
}
/**
*
* 获取某一年某一周的日期
* @description
* @param year
* @param week
* @return
*/
public static List<String> getWeekDays(int year,int week){
List<String> list = new ArrayList<String>();
Date date = getFirstDayOfWeek(year,week);
SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd");
for (int i = 0; i < 7; i++) {
list.add(d.format(date));
System.out.println(d.format(date));
date.setDate(date.getDate()+1);
}
return list;
}
/** */
/**
* 取得某年某周的第一天 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周,2009-01-05为2009年第一周的第一天
*
* @param year
* @param week
* @return
*/
public static Date getFirstDayOfWeek(int year, int week) {
Calendar calFirst = Calendar.getInstance();
calFirst.set(year, 0, 7);
Date firstDate = getFirstDayOfWeek(calFirst.getTime());
Calendar firstDateCal = Calendar.getInstance();
firstDateCal.setTime(firstDate);
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));
Calendar cal = (GregorianCalendar) c.clone();
cal.add(Calendar.DATE, (week - 1) * 7);
firstDate = getFirstDayOfWeek(cal.getTime());
return firstDate;
}
/** */
/**
* 取得某年某周的最后一天 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周, 2009-01-04为
* 2008年最后一周的最后一天
*
* @param year
* @param week
* @return
*/
public static Date getLastDayOfWeek(int year, int week) {
Calendar calLast = Calendar.getInstance();
calLast.set(year, 0, 7);
Date firstDate = getLastDayOfWeek(calLast.getTime());
Calendar firstDateCal = Calendar.getInstance();
firstDateCal.setTime(firstDate);
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));
Calendar cal = (GregorianCalendar) c.clone();
cal.add(Calendar.DATE, (week - 1) * 7);
Date lastDate = getLastDayOfWeek(cal.getTime());
return lastDate;
}
/**
*获取当前日期的年、月、日
*/
public void display() {
Calendar cal = Calendar.getInstance();
// 年
int year = cal.get(cal.YEAR);
// 月
int month = cal.get(cal.MONTH) + 1;
// 日
int date = cal.get(cal.DATE);
// 星期
int today = cal.get(cal.DAY_OF_WEEK) - 1;
}
public static void main(String args[]){
List<String> listWeekDate = DateUtil.getWeekDays(2010,52);
for(String weeks :listWeekDate){
System.out.println("weeks:"+weeks);
}
}
}
分享到:
相关推荐
java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年...
### Java周算法:通过日期获取周信息 #### 1. 概述 本文将详细介绍一个Java程序中的实用工具类——`WeekUtil`,该类主要用于处理与周相关的各种计算问题,如确定某个日期所在的周数、获取指定周的第一天和最后一天...
Java 中用 Calendar 类计算周和周的起始日期 Java 中用 Calendar 类计算周和周的起始日期时,需要了解 Calendar 类的使用方法和日期计算的逻辑。在 Java 中,Calendar 类提供了计算周和周的起始日期的方法。 首先...
根据给定文件的信息,本文将深入探讨Java中与日期转换及计算相关的几个核心知识点:如何计算当前日期是年度中的第几周、确定某天是一周中的哪一天、日期的格式化处理、获取指定年份月份的具体日期以及如何获得当前...
在Java编程语言中,实现对年、月、日、周访问量的统计是一项常见的任务,尤其是在网站数据分析或者服务器日志处理中。这个任务涉及到日期时间处理、数据存储以及可能的数据聚合操作。以下是一些关键的知识点,可以...
标签“java日期控件”强调了这个主题关注的是Java中与日期选择相关的控件,不仅仅是Swing,也可能是JavaFX或其他库提供的日期选择组件。但在这里,我们主要讨论的是Swing环境下的实现。 在压缩包的"swing 时间控件...
### Java日期处理大全:掌握时间的艺术 在Java编程中,日期和时间的处理是不可或缺的一部分,尤其是在涉及到数据记录、时间戳、定时任务等场景时。本文将深入探讨Java中的日期处理技术,涵盖从基础到进阶的各种技巧...
在Java编程中,实现月、日、年、周和访问量统计是一项常见的需求,尤其是在构建数据分析或Web应用中。这通常涉及到数据收集、处理和可视化。以下是一些关键知识点: 1. **日期和时间处理**:Java提供了多种库来处理...
### JAVA日期操作汇总 本文将对Java中的日期操作进行详细解析,主要涵盖以下几个方面: 1. 计算某个月份的最大天数; 2. `Calendar`与`Date`之间的转换; 3. 日期格式化; 4. 获取指定日期所在的周序号及设置某...
### Java 获取某年12个月的周六日 #### 背景与目标 在实际开发过程中,有时我们需要根据特定年份获取每个月的所有周六和周日的日期。这可能用于多种场景,比如工作日程安排、节假日提醒等。下面将详细介绍如何通过...
在Java中,通过`Calendar`类可以方便地操作日期。以下将详细介绍如何利用`Calendar`类来获取本周、本年、本月的第一天和最后一天的具体实现方法。 #### 本周的第一天与最后一天 在Java中,获取本周的第一天和最后...
在Java编程中,显示某年某月某一周的信息涉及到日期和时间处理,这是Java核心库中的重要部分。Java提供了一系列的类和方法来处理日期、时间以及周、月等概念,主要集中在`java.time`包下。下面我们将深入探讨如何...
Java日期常用工具类,可以快速获取月、周、日以及日期间的差值计算
本文将详细介绍几种常用的Java日期时间获取方法,包括如何获取完整日期时间、仅获取时间部分(时分秒)、获取日期部分以及如何获取时间戳。此外,我们还将探讨如何使用自定义格式来获取日期时间。 #### 二、基本...
java获取今天、昨天、近一周、近两周、近三周、近一月、近两月、近三月、近半年、本周、上周、本月、上月时间段
根据给定文件的信息,我们可以总结出以下几个关于Java日期计算的关键知识点: ### 1. 获取某个月的最大天数 为了获取某个月的最大天数,我们可以通过`Calendar`类来进行操作。首先,我们需要创建一个`Calendar`...
`Calendar`类是Java中处理日期和时间的核心类之一,它提供了一系列的方法来获取和设置日期、时间的各种组件,如年、月、日、小时、分钟、秒等。例如,创建一个`Calendar`实例并设置特定的年份: ```java Calendar ...
本文将详细讲解如何根据给定的标题和描述,利用Java编程语言来判断当前日期是否在本月的最后一周内,以及如何判断日期是否在某一周内的最后几天、前几天或24小时内。 首先,我们需要引入Java的`java.time`包,这个...