import java.util.Calendar;
import java.util.Date;
public class DayDiffer {
public int getIntervalDaysByCalendar(Calendar startday, Calendar endday) {
if (startday.after(endday)) {
Calendar cal = startday;
startday = endday;
endday = cal;
}
long sl = startday.getTimeInMillis();
long el = endday.getTimeInMillis();
long ei = el - sl;
return (int) (ei / (1000 * 60 * 60 * 24));
}
public int getIntervalDaysByDate(Date startday, Date endday) {
if (startday.after(endday)) {
Date cal = startday;
startday = endday;
endday = cal;
}
long sl = startday.getTime();
long el = endday.getTime();
long ei = el - sl;
return (int) (ei / (1000 * 60 * 60 * 24));
}
public int getDaysBetween(Calendar d1, Calendar d2) {
if (d1.after(d2)) {
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
int y2 = d2.get(Calendar.YEAR);
if (d1.get(Calendar.YEAR) != y2) {
d1 = (Calendar) d1.clone();
do {
days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天�?
d1.add(Calendar.YEAR, 1);
} while (d1.get(Calendar.YEAR) != y2);
}
return days;
}
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Date d = calendar.getTime();
DayDiffer dayDiffer=new DayDiffer();
System.out.println(dayDiffer.getOnaWeekStart(d));
System.err.println(dayDiffer.getOnaWeekEnd(d));
System.err.println(dayDiffer.getWeekStart(d));
}
public Date getOnaWeekStart(Date xz) {
Date date = getWeekStart(xz);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, -7);
return calendar.getTime();
}
public Date getOnaWeekEnd(Date xz) {
Date date = getOnaWeekStart(xz);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, 6);
return calendar.getTime();
}
public Date getWeekStart(Date xz) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(xz);
Date d2 = calendar.getTime();
int week = calendar.get(calendar.DAY_OF_WEEK) - 2;
calendar.add(Calendar.DATE, -week);
return calendar.getTime();
}
}
import java.util.Date;
public class DayDiffer {
public int getIntervalDaysByCalendar(Calendar startday, Calendar endday) {
if (startday.after(endday)) {
Calendar cal = startday;
startday = endday;
endday = cal;
}
long sl = startday.getTimeInMillis();
long el = endday.getTimeInMillis();
long ei = el - sl;
return (int) (ei / (1000 * 60 * 60 * 24));
}
public int getIntervalDaysByDate(Date startday, Date endday) {
if (startday.after(endday)) {
Date cal = startday;
startday = endday;
endday = cal;
}
long sl = startday.getTime();
long el = endday.getTime();
long ei = el - sl;
return (int) (ei / (1000 * 60 * 60 * 24));
}
public int getDaysBetween(Calendar d1, Calendar d2) {
if (d1.after(d2)) {
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
int y2 = d2.get(Calendar.YEAR);
if (d1.get(Calendar.YEAR) != y2) {
d1 = (Calendar) d1.clone();
do {
days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天�?
d1.add(Calendar.YEAR, 1);
} while (d1.get(Calendar.YEAR) != y2);
}
return days;
}
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Date d = calendar.getTime();
DayDiffer dayDiffer=new DayDiffer();
System.out.println(dayDiffer.getOnaWeekStart(d));
System.err.println(dayDiffer.getOnaWeekEnd(d));
System.err.println(dayDiffer.getWeekStart(d));
}
public Date getOnaWeekStart(Date xz) {
Date date = getWeekStart(xz);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, -7);
return calendar.getTime();
}
public Date getOnaWeekEnd(Date xz) {
Date date = getOnaWeekStart(xz);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, 6);
return calendar.getTime();
}
public Date getWeekStart(Date xz) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(xz);
Date d2 = calendar.getTime();
int week = calendar.get(calendar.DAY_OF_WEEK) - 2;
calendar.add(Calendar.DATE, -week);
return calendar.getTime();
}
}