import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Util {
/**
* @function:可以增加日期的天数
* @param date :日期
* @param number :需要增加的天数
* @return
*/
public static String addDay(String date, int number) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cd = Calendar.getInstance();
cd.setTime(sdf.parse(date));
cd.add(Calendar.DATE, number);
return sdf.format(cd.getTime());
}
/**
* @function:将字符串转为Calendar类型,可以进行日期比较
* @param dateTime 默认:当前系统时间
* @param formatString 默认:yyyy-MM-dd
* @return
*/
public static Calendar formatDateFromStringToCalendar(String dateTime, String formatString)
{
Calendar cal = Calendar.getInstance();
if (dateTime == null || "".equals(dateTime))
cal.setTime(new Date());
else
{
if(formatString==null || "".equals(formatString))
formatString = "yyyy-MM-dd";
SimpleDateFormat df = new SimpleDateFormat(formatString);
try
{
cal.setTime(df.parse(dateTime));
} catch (ParseException e)
{
e.printStackTrace();
}
}
if(formatString==null)
{
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
}
return cal;
}
/**
* 日期相减运算
* 方法一
*/
public static long getQuot(String time1, String time2) throws ParseException{
long quot = 0;
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");
Date date1 = ft.parse( time1 );
Date date2 = ft.parse( time2 );
quot = date1.getTime() - date2.getTime();
quot = quot / 1000 / 60 / 60 / 24;
return quot;
}
/**
* 日期相减运算
* 方法二
*/
public long getDateNumber(String date1,String date2)
{
int tempStart1 = Integer.parseInt(date1.substring(0,4));
int tempStart2 = Integer.parseInt(date1.substring(4,6));
int tempStart3 = Integer.parseInt(date1.substring(6,8));
int tempEnd1 = Integer.parseInt(date2.substring(0,4));
int tempEnd2 = Integer.parseInt(date2.substring(4,6));
int tempEnd3 = Integer.parseInt(date2.substring(6,8));
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
calendar1.set(tempStart1, tempStart2, tempStart3);//0到11表示1到12月
calendar2.set(tempEnd1, tempEnd2, tempEnd3);
long str=calendar2.getTimeInMillis()-calendar1.getTimeInMillis();
return str/(24*60*60*1000); //返回相差天数
}
/**
*
* @function:日期加减运算
* @param time 日期
* @param format 日期格式
* @param type Calendar.YEAR 日期类型
* @param number 运算数
* @return
* @throws BusinessException
* @author: mengqingyu 2013-8-16 下午01:55:42
*/
public static String getDateNumber(String time, String format, int type, int number) throws BusinessException{
Calendar cd = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
cd.setTime(sdf.parse(time));
} catch (ParseException e) {
throw new BusinessException("日期格式错误:"+time,e);
}
cd.add(type, -1);
return sdf.format(cd.getTime());
}
}
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* <p>Title: 周计算类,星期一为一周的开始,星期日为一周的结束</p>
* <p>Description: 在两年的交接地带还有疑问。</p>
* <p>比如2006-12-29到2009-01-04,属于2008年的最后一周,</p>
* <p>2009-01-05位2009年第一周的开始。</p>
* <p>db2种的week_iso也是这样计算的</p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>DateTime: 2006-4-11 23:36:39</p>
*
* @author gumpgz
* @version 1.0
*/
public class WeekUtil {
/**
* 取得当前日期是多少周
*
* @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 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());
}
/**
* 得到某年某周的第一天
*
* @param year
* @param week
* @return
*/
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 ());
}
/**
* 得到某年某周的最后一天
*
* @param year
* @param week
* @return
*/
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());
}
/**
* 取得当前日期所在周的第一天
*
* @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()); // Monday
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); // Sunday
return c.getTime();
}
分享到:
相关推荐
本篇文章将深入探讨Java中日期转换的各种方法和技巧。 一、日期对象的创建 在Java中,日期对象可以通过`java.util.Date`类或`java.time`包中的类来创建。`Date`类是较早的API,而`java.time`包(自Java 8引入)...
根据给定文件的信息,我们可以总结出以下几个关于Java日期计算的关键知识点: ### 1. 获取某个月的最大天数 为了获取某个月的最大天数,我们可以通过`Calendar`类来进行操作。首先,我们需要创建一个`Calendar`...
在日期运算中,`java.time`包提供了`plusDays()`, `minusMonths()`, `until()`等方法,使得日期的加减运算变得直观且方便。另外,`TemporalAdjusters`接口提供了一些实用的调整器,比如`firstDayOfMonth()`和`...
在Java编程语言中,日期和时间的处理是一个常见的任务,特别是在开发各种应用程序时。本组件专注于日期型字符串与日期对象之间的转换,这对于数据输入、输出、存储和展示至关重要。下面我们将详细探讨这个主题,以及...
Java编程语言在处理日期和时间时,虽然内建了`java.util.Date`和`java.util.Calendar`类,但它们的使用并不总是那么直观和高效。为了解决这个问题,社区开发了Joda-Time库,它提供了更为强大且易用的日期时间操作...
以下是一些关于Java日期处理的关键知识点,这些知识点在给定的文件中有所提及: 1. **获取当前日期**: Java通过`java.util.Date`类可以获取服务器上的当前日期。创建一个Date对象即会返回当前系统时间,如`Date ...
Java日期操作是编程中常见的需求,它涉及到对时间的处理、日期格式化、日期比较以及时间戳转换等。Java提供了一系列强大的API来处理日期和时间,主要包括`java.util.Date`、`java.util.Calendar`、`java.text....
在Java编程语言中,日期和时间的处理是程序员日常工作中不可或缺的一部分。"Java版日期计算器"通常是指一个程序或库,用于执行各种日期相关的运算,如添加、减去天数、计算两个日期之间的差值等。Java提供了多种API...
这篇博客"Java日期转换"探讨了如何在Java中有效地进行日期的转换和操作。以下是对这个主题的详细阐述。 1. **基础概念** - **日期类**:在Java中,`java.util.Date`是最基本的日期类,它表示特定的瞬间,精确到...
下面我们将深入探讨相关的Java日期处理知识。 Java中的日期和时间API主要有两个版本:一个是早期的`java.util.Date`和`java.util.Calendar`类,另一个是Java 8引入的`java.time`包,包含`LocalDate`, `LocalTime`, ...
- `SimpleDateFormat`的`format`方法用于将日期转换为字符串,如`SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = formatter.format(date);` - `DateTimeFormatter`的用法...
Java_Date_日期时间整理 Java 中的日期时间处理是非常重要的,以下是 Java 中日期时间整理的知识点总结: ...通过上述知识点,我们可以看到 Java 中日期时间处理的多样性和灵活性,可以满足不同的应用场景需求。
例如,你可以使用`LocalDateTime.now()`获取当前日期和时间,或者通过`plusDays()`、`minusHours()`等方法进行日期时间的加减运算。`DateTimeFormatter`类用于格式化和解析`java.time`对象,比`SimpleDateFormat`更...
此外,比较两个日期也很常见,可以通过将日期转换为毫秒数来进行比较: ```java Date date1 = new Date(); Date date2 = new Date(); if (date1.getTime() > date2.getTime()) { System.out.println("date1 is ...
万年历系统通常需要处理公历中的各种日期转换,包括农历、节气、节假日等。在C#中,可以使用第三方库如Noda Time来支持复杂的日期计算,而在Java中,可以使用`java.time.chrono.Chronology`和`java.time.chrono....
1. **Java日期时间类**:Java标准库中的日期时间类,如`java.util.Date`、`java.util.Calendar`以及Java 8引入的`java.time`包,用于表示和操作日期和时间。 2. **获取当前日期和时间**:通过`java.util.Date`的无...
这篇博客"常用代码:java日期处理"很可能包含了关于如何在Java中有效地处理日期的实用示例和方法。这里我们将深入探讨Java日期处理的核心概念、API和最佳实践。 1. **Java日期API的发展历程** - Java 1.0引入了`...
Java日期时间处理在编程中是一项常见任务,但Java标准库中的`java.util.Date`和`Calendar`类在使用上往往被认为复杂且不直观。为了解决这个问题,`date4j`库应运而生,它提供了更为简洁和现代的方式来处理日期和时间...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
在Java编程语言中,日历(Calendar)类是处理...开发者可能需要对Java日期API有深入理解,并能编写复杂的金融计算算法。通过这个项目,可以学习到如何在实际应用中使用Java进行日期操作以及实现一个实用的金融工具。