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日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
①日期的加减运算;②获取各种格式的日期;③java对象日期和数据库日期的各种转化;
narrowingConversion_1.java 缩减转换引发错误示例1 narrowingConversion_2.java 缩减转换引发错误示例2 notMultipleOfThree.java 把100-200之间不能被3整除的数输出 outputByDoWhile.java 用while循环随机输出...
主要介绍了java获取昨天日期字符串的方法,涉及java针对日期与时间的运算与转换等相关操作技巧,需要的朋友可以参考下
第5-20章深入描述了java技术的内部细节,包括垃圾收集、java安全模型、java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中等6章和附录a-c完全可以作为class文件和指令含集的参考手册。本书还附带...
主要介绍了java获取日期之间天数的方法,涉及java针对日期的转换与数学运算相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
它提供了许多有用的方法,例如 parse() 方法可以将字符串转换为日期,format() 方法可以将日期转换为字符串等。 8. Math 类 Math 类是 Java 语言中用于数学运算的类。它提供了许多有用的方法,例如 sqrt() 方法...
第6章时间 日期和数字 6 1Date类 6 2Calendar类 6 3Math类 6 4BigInteger类 习题 第7章AWT组件及事件处理 7 1Java窗口 7 1 1 Frame常用方法 7 1 2菜单条 菜单 菜单项 7 1 3窗口与屏幕 7 2文本框 7 2 1TextField类的...
主要介绍了java实现字符串和日期类型相互转换的方法,涉及java针对日期与字符串的转换与运算相关操作技巧,需要的朋友可以参考下
第1章 Java语言概述和开发环境 1.1 预备知识 1.2 实验1 JDK 5.0路径设置 1.3 实验2 在DOS环境下编译和运行Application和Applet程序 1.4 实验3 在JBuilder 2005中配置JDK 5.0编译环境 1.5 实验4 在JBuilder 2005...
3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
最后通过转化成JS代码运算得到启发,使用类似方法,我还实现了调用VB代码实现计算 器实时读出键盘输入,发出声音。 3. 系统实现:system implementation 1.程序界面展示 4. 总结体会: summary and experience 实验...
2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行机制29 2.7 上机练习30 第3章 3.1 变量32 3.1.1 什么是变量32 3.1.2 为什么需要变量32 3.1.3 变量的声明和赋值33 3.1.4 变量应用实例33...
主要介绍了Java实现的日期处理类,结合完整实例形式分析了Java针对日期的获取、运算、转换等相关操作技巧,需要的朋友可以参考下
3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
简述 Java Server Page 和 Servlet 的联系和区别。 33.简述synchronized和java.util.concurrent.locks.Lock的异同 ? 34.EJB规范规定EJB中禁止的操作有哪些? 35.java除了8种基本类型外,在虚拟机里还有哪一种,...
实例015 加密可以这样简单(位运算) 20 实例016 用三元运算符判断奇数和偶数 21 实例017 不用乘法运算符实现2×16 22 实例018 实现两个变量的互换 (不借助第3个变量) 23 第4章 流程控制 25 实例019 判断某一年...
1.利用public static method进行日期格式的转换 2.利用内容的Calendar object进行日期的计算,适合有大量的日期计算,用method 1则效率低的场合 3处理json日期转化问题 4提供高精度的运算支持. 所以函数以double为...