package com.xumian.util.time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DataUtil {
/**
* 获取0点日期
* @param day
* @return
*/
public static Calendar getDateBeginning(Calendar day){
Calendar cal=day;
if(cal==null){
cal=Calendar.getInstance();
}
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
String time=format.format(cal.getTime());
Date date;
try{
date=format.parse(time);
cal.setTime(date);
}catch(Exception e){
}
return cal;
}
/**
* 获取一个月第几天的日期
* @param day
* @param num
* @return
*/
public static Calendar getDateOfMonth(Calendar day,int num){
Calendar cal= Calendar.getInstance();
cal.setTime(day.getTime());
int min=cal.getActualMinimum(Calendar.DATE);
int max=cal.getActualMaximum(Calendar.DATE);
if(num<min){
cal.set(Calendar.DATE, min);
}else if(num>max){
cal.set(Calendar.DATE, max);
}else{
cal.set(Calendar.DATE, num);
}
return cal;
}
/**
* 获得指定周之后的日期
* @param day
* @param num
* @return
*/
public static Calendar getDayAfterWeeks(Calendar day,int num){
Calendar cal=Calendar.getInstance();
cal.setTime(day.getTime());
cal.add(Calendar.WEEK_OF_MONTH, num);
return cal;
}
/**
* 获得指定月数之后的日期
* @param day
* @param num
* @return
*/
public static Calendar getDayAfterMonthes(Calendar day,int num){
Calendar cal=Calendar.getInstance();
cal.setTime(day.getTime());
cal.add(Calendar.MONTH, num);
return cal;
}
public static String getFirstxq(String riqi) {
Date d = new Date();
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
try {
d = sd.parse(riqi);
} catch (Exception e) {
e.printStackTrace();
}
int n = d.getDay();
n = (8 - n) % 7;
long t = d.getTime() / 1000;
t += 3600 * 24 * n;
d.setTime(t * 1000);
return sd.format(d);
}
/**
* 获取一年中指定月的天数
* @param year
* @param month
* @return
*/
public static int getDatesOfMonth(int year, int month) {
Calendar a = Calendar.getInstance();
a.set(Calendar.YEAR, year);
a.set(Calendar.MONTH, month - 1);
a.set(Calendar.DATE, 1);
a.roll(Calendar.DATE, -1);
int maxDate = a.get(Calendar.DATE);
return maxDate;
}
public static String getdatexq(String riqi, int ts) {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Date d = null;
try {
d = sf.parse(riqi);
} catch (ParseException ex) {
}
Calendar c = Calendar.getInstance();
c.setTime(d);
c.add(c.DATE, ts);
Date zdrq = c.getTime();
return sf.format(zdrq);
}
public static String getNextDate(String dd,int n) {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = null;
try {
Date d = sf.parse(dd);
Calendar c = Calendar.getInstance();
c.setTime(d);
c.add(c.DATE, n);
d1=c.getTime();
} catch (ParseException ex) {
}
if(d1!=null)
return sf.format(d1);
else
return "";
}
public static String getNextMouth(String cm, int n) {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Date d = null;
try {
d = sf.parse(cm);
} catch (ParseException e) {
}
Calendar c = Calendar.getInstance();
c.setTime(d);
c.add(Calendar.MONTH, n);
Date d1 = c.getTime();
String dd1 = sf.format(d1);
return dd1.toString();
}
public static String getTwoDay(String sj1, String sj2) {
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
long day = 0;
try {
java.util.Date date = myFormatter.parse(sj1);
java.util.Date mydate = myFormatter.parse(sj2);
day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
} catch (Exception e) {
return "";
}
return day + "";
}
public static void main(String[] args){
System.out.println(DataUtil.getNextDate("2011-02-23",64));
}
}