/**
* @param args
* 我想做的是:希望在原来日期的基础上一块时间段得到一个新的日期
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
// 返回毫秒
public static long getMillis(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.getTimeInMillis();
}
// 日期加上一段时间得到新的日期
public static String getAddNewDate(String dateTiem,double newTime){
String[] times=dateTiem.split(" ");
String oldDate=times[0];
//将字符串转相应格式的时间类型
DateFormat t = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date t1 = null;
Date newTimes=null;
long totalTime=0;
try {
//计算出了所有的时间相加,再计算出日期
t1 = t.parse(oldDate);
totalTime=(long)(getMillis(t1)+(newTime*60*60*1000));
if(times.length>1){
String oldTime=times[1];
totalTime+=getMinByDateTime(oldTime);
}
newTimes=new Date(totalTime);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sdf.format(newTimes);
}
// 日期减去一段时间得到新的日期
public static String getReduceNewDate(String dateTiem,double newTime){
String[] times=dateTiem.split(" ");
String oldDate=times[0];
//将字符串转相应格式的时间类型
DateFormat t = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date t1 = null;
Date newTimes=null;
try {
t1 = t.parse(oldDate);
//计算出了所有的时间相加,再计算出日期
long totalTime=(long)(getMillis(t1)-(newTime*60*60*1000));
if(times.length>1){
String oldTime=times[1];
totalTime+=getMinByDateTime(oldTime);
}
newTimes=new Date(totalTime);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sdf.format(newTimes);
}
//知道某年的某个星期求这个星期的第一天的日期
public static String getDayByWeek(int year,int week)
{
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Date d=calendar.getTime();
DateFormat t = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return t.format(d);
}
//时间得到毫秒数
public static long getMinByDateTime(String dateTiem){
String[] time=dateTiem.split(":");
long dTime=Integer.parseInt(time[0])*60*60*1000;
dTime+=Integer.parseInt(time[1])*60*1000;
dTime+=Integer.parseInt(time[2])*1000;
return dTime;
}
//两个日期间的小时数
public static int getHourseBothDate(String time1,String time2){
int time=0;
DateFormat t = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date dt1=t.parse(time1);
Date dt2=t.parse(time2);
double dtt1=getMillis(dt1)/(1000*60*60);
double dtt2=getMillis(dt2)/(1000*60*60);
time=(int)Math.floor(dtt1-dtt2);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return time;
}
//两个日期间的天数
public static int getDayBothDate(String time1,String time2){
int time=0;
DateFormat t = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date dt1=t.parse(time1);
Date dt2=t.parse(time2);
Calendar aCalendar=Calendar.getInstance();
//里面野可以直接插入date类型
aCalendar.setTime(dt1);
//计算此日期是一年中的哪一天
int day1=aCalendar.get(Calendar.DATE);
aCalendar.setTime(dt2);
int day2=aCalendar.get(Calendar.DATE);
time=day1-day2;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return time;
}
public static double getMinByDate(String dateTime){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d=null;
try {
d = sdf.parse(dateTime);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return getMillis(d)/(1000*60*60);
}
//格式化年月日
public static String getDateformat(Date date){
SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
return sdf.format(date);
}
/* //得到月日
public static String getMonthAndDay(){
}*/ |
|