有时候,我们需要把一个特定的字符串转成日期类型,有时候又要把日期类型转成字符串格式。还有有时候要实现日期转星期的需求。又或者需要获得某个日期的下一天的日期。在这里大都可以通过以下类来实现。如下:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.sql.Date;
public class DayDate {
/** 星期几 */
private String day;
/** 日期 */
private String date;
final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
public DayDate() {
super();
DateFormat objDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar objCalendar = Calendar.getInstance();
this.date = objDateFormat
.format(new Date(objCalendar.getTimeInMillis()+24L*60L*60L*1000L));
int dayOfWeek = objCalendar.get(Calendar.DAY_OF_WEEK);
this.day = dayNames[dayOfWeek - 1];
}
/**
* 取得下一天
*/
public String nextDay(){
Calendar objCalendar = Calendar.getInstance();
objCalendar.setTime(Date.valueOf(this.date));
int dayOfWeek = objCalendar.get(Calendar.DAY_OF_WEEK)+1>7 ? 1:objCalendar.get(Calendar.DAY_OF_WEEK)+1;
return this.day = dayNames[dayOfWeek - 1];
}
/**
* 取得下一date
* @return
*/
public String nextDate(){
DateFormat objDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar objCalendar = Calendar.getInstance();
objCalendar.setTime(Date.valueOf(this.date));
return this.date = objDateFormat
.format(new Date(objCalendar.getTimeInMillis()+24L*60L*60L*1000L));
}
/**
* 构造函数,以字段初始化
*
* @param day
* 设置星期几
* @param date
* 设置日期
*/
public DayDate(String date) {
super();
Calendar objCalendar = Calendar.getInstance();
objCalendar.setTime(Date.valueOf(date));
int dayOfWeek = objCalendar.get(Calendar.DAY_OF_WEEK);
this.day = dayNames[dayOfWeek - 1];
this.date = date;
}
/**
* @return the date
*/
public String getDate() {
return date;
}
/**
* @param date
* the date to set
*/
public void setDate(String date) {
this.date = date;
}
/**
* @return the day
*/
public String getDay() {
return day;
}
/**
* @param day
* the day to set
*/
public void setDay(String day) {
this.day = day;
}
public String toString() {
return day + "(" + date + ")";
}
public static void main(String[] args){
System.out.println(new DayDate("2010-07-30").nextDate());
}
}