datetimetool.java
来自「基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰」· Java 代码 · 共 724 行 · 第 1/2 页
JAVA
724 行
package com.yuanchung.sales.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import com.yuanchung.sales.exception.DateFormatException;
/**
* <p>
* Title:
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright: Copyright (c) 2006
* </p>
* <p>
* Company:
* </p>
*
* @author not attributable
* @version 1.0
*/
@SuppressWarnings("unchecked")//剔除未检查的警告;
public class DateTimeTool {
public static void main(String[] args) throws ParseException {
String str = "12345";
System.out.println(str.substring(0, 5));
//System.out.println(DateTimeTool
//.getCurrentDate("yyyy-MM-dd_HH-mm-ss"));
//System.out.println(compare("2008-01-01 02-01-01", "2008-01-01 03-01-02"));
// System.out.println(getMaxDate(new Date(), "2009-01-01 02-01-01"));
}
public DateTimeTool() {
}
/**
* ��ȡ���������
*
* @return
*/
public static Date getYesterday() {
Date date = new Date();
return new Date(date.getTime() - 1000 * 60 * 60 * 24);
}
/**
* ��ȡһ��֮ǰ����
*
* @param format
* @return
*/
public static String getOneWeekAgoStr(String format) {
long current = new java.util.Date().getTime();
long aweek = 7 * 24 * 60 * 60 * 1000;
long oneweekago = current - aweek;
return new SimpleDateFormat(format).format(new java.util.Date(
oneweekago));
}
/**
* ��ȡ3��֮ǰ����
*
* @param format
* @return
*/
public static String getThreeDayAgoStr(String format) {
long current = new java.util.Date().getTime();
long threeday = 3 * 24 * 60 * 60 * 1000;
long threedayago = current - threeday;
return new SimpleDateFormat(format).format(new java.util.Date(
threedayago));
}
/**
* ��ȡ����֮ǰ����
*
* @param format
* @return
*/
public static String getGivenDayAgoStr(int beforeDays, String format) {
Calendar c = Calendar.getInstance(); // ��ʱ�����ں�ʱ��
int d = c.get(Calendar.DAY_OF_MONTH); // ȡ���ա���
int d2 = d - beforeDays;
c.set(Calendar.DAY_OF_MONTH, d2); // �����ա������û�ȥ
//
// long current = new java.util.Date().getTime();
// long beforetimes = beforeDays * 24 * 60 * 60 * 1000;
// long times = current - beforetimes;
return new SimpleDateFormat(format).format(c.getTime());
}
/**
* ȡ��ǰ����
*
* @param format
* @return
*/
public static String getCurrentDate(String format) {
return new SimpleDateFormat(format).format(new Date());
}
public static boolean lastDayOfYear(Integer year,Integer dayOfYear) {
boolean flag = false;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_YEAR, dayOfYear);
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.add(Calendar.YEAR, 1);
c.set(Calendar.DAY_OF_YEAR, 1);
c.set(Calendar.DATE, c.get(Calendar.DAY_OF_YEAR)-1);
if(cal.equals(c)) {
flag = true;
}
return flag;
}
/**
* @author 陆文邦
* @function 判断该天是否为该年的第一天;
* @param year
* @param dayOfYear
* @return
* @time 2008-12-15
*/
public static boolean firstDayOfYear(Integer year,Integer dayOfYear) {
boolean flag = false;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_YEAR, dayOfYear);
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.DAY_OF_YEAR, 1);
if(cal.equals(c)) {
flag = true;
}
return flag;
}
/**
* @author 陆文邦
* @function 获取该天为周几;
* @param year
* @param dayOfYear
* @return 返回星期几;
*/
public static int getWeekNoByDayOfYear(Integer year,Integer dayOfYear) {
Integer weekNO = null;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_YEAR, dayOfYear);
weekNO = cal.get(Calendar.DAY_OF_WEEK);
return weekNO;
}
/**
* @author 陆文邦
* @param year
* @return 获取该年度能够的日期;
*/
public static int getWeekCountOfYear(Integer year) {
Integer weekCount = null;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, Calendar.DECEMBER);
cal.set(Calendar.DATE,31);
weekCount = cal.get(Calendar.WEEK_OF_YEAR);
if(weekCount==1){
weekCount = 52;
}
return weekCount;
}
/**
* @author 陆文邦;
* 获取本周周日的日期;
* @param format
* @return 字符串;
*/
public static String getFirstDateByWeek(int yearInt,int monthInt,int weekOfYear) {
Calendar cal = Calendar.getInstance();//定义日历;
if(monthInt==11&&weekOfYear==1) {
cal.set(Calendar.YEAR, yearInt);//设置年份时间,年最后一周的处理+1;
cal.set(Calendar.MONTH, monthInt);//设置月份时间;
cal.set(Calendar.WEEK_OF_YEAR, getWeekCountOfYear(yearInt)+1);//设置日历时间;
cal.set(Calendar.DAY_OF_WEEK, 1);
} else {
cal.set(Calendar.YEAR, yearInt);//设置年份时间;
cal.set(Calendar.MONTH, monthInt);//设置月份时间;
cal.set(Calendar.WEEK_OF_YEAR, weekOfYear);//设置日历时间;
cal.set(Calendar.DAY_OF_WEEK, 1);
}
Date date = cal.getTime();//获取本周第一天的时间;
return new SimpleDateFormat("yyyy-MM-dd").format(date);
}
/**
* @author 陆文邦;
* @function 根据传的日期获取未来7天的日期数量;
* @param date
* @return list
*/
public static List getDateNos(String firstDate) throws DateFormatException{
List bigList = new ArrayList();
Date date = buildDate(firstDate);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
for (int i = 0; i < 7; i++) {
List<String> singleList = new ArrayList<String>();
String dateNo = new SimpleDateFormat("dd").format(cal.getTime());//获取日期;
singleList.add(dateNo);
String monthNo = String.valueOf(Integer.parseInt(new SimpleDateFormat("MM").format(cal.getTime()))-1);//获取月份;
singleList.add(monthNo);
String yearNo = new SimpleDateFormat("yyyy").format(cal.getTime());//获取年份;
singleList.add(yearNo);
String weekOfYear = String.valueOf(cal.get(Calendar.WEEK_OF_YEAR));//年之周;
singleList.add(weekOfYear);
String dayOfYear = String.valueOf(cal.get(Calendar.DAY_OF_YEAR));//年之日;
singleList.add(dayOfYear);
bigList.add(singleList);
cal.add(Calendar.DATE, 1);//前进一天;
}
return bigList;
}
/**
* @author 陆文邦;
* 获取本周周六的日期;
* @param format
* @return 字符串;
*/
public static String getLastDateByWeek(int yearInt,int monthInt,int weekOfYear) {
Calendar cal = Calendar.getInstance();//定义日历;
if(monthInt==11&&weekOfYear==1) {
cal.set(Calendar.YEAR, yearInt+1);//设置年份时间;
cal.set(Calendar.MONTH, 0);//设置月份时间;
cal.set(Calendar.WEEK_OF_YEAR, weekOfYear);//设置日历时间,年当中的第一周;
cal.set(Calendar.DAY_OF_WEEK, 7);
} else {
cal.set(Calendar.YEAR, yearInt);//设置年份时间;
cal.set(Calendar.MONTH, monthInt);//设置月份时间;
cal.set(Calendar.WEEK_OF_YEAR, weekOfYear);//设置日历时间;
cal.set(Calendar.DAY_OF_WEEK, 7);
}
Date date = cal.getTime();//获取本周第一天的时间;
return new SimpleDateFormat("yyyy-MM-dd").format(date);
}
/**
* @author 陆文邦;
* 获取明天的日期;
* @param format
* @return
*/
public static String getTomorrowDate(String format,Integer mount) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, mount);
Date date = c.getTime();
return new SimpleDateFormat(format).format(date);
}
/**
* @author 陆文邦;
* 获取当前月第一天;
* @param format
* @return
*/
public static String getMonthFirstDay(String format) {
Calendar c = Calendar.getInstance();
c.set(Calendar.DATE, 1);//把日期设置为当月第一天
Date date = c.getTime();
return new SimpleDateFormat(format).format(date);
}
/**
* @author 陆文邦;
* 获取当前月最后一天;
* @param format
* @return
* 思路:该月最后一天的号数就是当月的天数;
*/
public static String getMonthLastDay(String format) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);//把月份设置成下个月
cal.set(Calendar.DAY_OF_MONTH, 1);//把日期设置成一号;
cal.set(Calendar.DATE, cal.get(Calendar.DATE) - 1);//下个月一号减去一天就是上个月的最后一天,然后把日期设置进去;
Date date = cal.getTime();
return new SimpleDateFormat(format).format(date);
}
/**
* @author 陆文邦;
* 获取当月的最后一天是星期几;
* @param cal
* @return
*/
public static int getLastDateByWeek(Calendar cal) {
Calendar c = (Calendar) cal.clone();
c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1);//把月份设置成下个月
c.set(Calendar.DAY_OF_MONTH, 1);//把日期设置成一号;
c.set(Calendar.DATE, c.get(Calendar.DATE) - 1);//下个月一号减去一天就是上个月的最后一天,然后把日期设置进去;
int weekNo = c.get(Calendar.DAY_OF_WEEK);
return weekNo;
}
/**
* @author 陆文邦;
* 获取当月的第一天是星期几;
* @param cal
* @return
*/
public static int getFirstDateByWeek(Calendar cal) {
Calendar c = (Calendar) cal.clone();
c.set(Calendar.DATE, 1);
int weekNo = c.get(Calendar.DAY_OF_WEEK);
return weekNo;
}
/**
* @author 陆文邦;
* @param c 日历参数,
* @param weekNum 周几
* @return int 第几次;
*/
public static int selectNumDate(Calendar c,Integer weekNum) {
int count = 0;
Calendar ccc = (Calendar) c.clone(); //参数前现实的日期;
Date date = ccc.getTime();
Calendar cal = (Calendar) c.clone();
int dateNum = getLastDate(cal);
cal.set(Calendar.DAY_OF_MONTH, 1);//把日期设置成一号;
for(int i=0;i<dateNum;i++) {
int tempWeekNum = cal.get(Calendar.WEEK_OF_MONTH);
if(tempWeekNum==weekNum){
count++;
if(date.equals(cal.getTime())){
count++;
return count;
}
}
cal.add(Calendar.DAY_OF_MONTH, 1);
}
return 0;
}
/**
* @author 陆文邦;
* 获取当前月最后一天;
* @param cal
* @return
* 思路:该月最后一天的号数就是当月的天数;
*/
public static int getLastDate(Calendar c) {
Calendar cal = (Calendar) c.clone();
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);//把月份设置成下个月
cal.set(Calendar.DAY_OF_MONTH, 1);//把日期设置成一号;
cal.set(Calendar.DATE, cal.get(Calendar.DATE) - 1);//下个月一号减去一天就是上个月的最后一天,然后把日期设置进去;
int DayNo = cal.get(Calendar.DATE);
return DayNo;
}
/**
* @author 陆文邦
* @functiuon
* @param year
* @param dayOfYear
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?