用Calendar自己算一下就可以了 for exampleimport java.util.*; import java.text.*; public class Test { public static void main(String[] args) throws Throwable { String s = "2012-04-20"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date d = sdf.parse(s); Calendar c = Calendar.getInstance(); c.setTime(d); int min = c.getActualMinimum(Calendar.DAY_OF_MONTH); int max = c.getActualMaximum(Calendar.DAY_OF_MONTH); c.set(Calendar.DAY_OF_MONTH, min); int workDays = 0; for (int i=0; i<max; i++) { int wd = c.get(Calendar.DAY_OF_WEEK); if (wd != Calendar.SATURDAY && wd != Calendar.SUNDAY) { workDays++; } c.add(Calendar.DAY_OF_MONTH, 1); } System.out.printf("work days = %d\n", workDays); } }
先用calendar算出这个月,有多少天。
在查出该月第一天是星期几。继而可以根据天数算出 有多少个星期六星期天。
for exampleimport java.util.*;
import java.text.*;
public class Test {
public static void main(String[] args) throws Throwable {
String s = "2012-04-20";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(s);
Calendar c = Calendar.getInstance();
c.setTime(d);
int min = c.getActualMinimum(Calendar.DAY_OF_MONTH);
int max = c.getActualMaximum(Calendar.DAY_OF_MONTH);
c.set(Calendar.DAY_OF_MONTH, min);
int workDays = 0;
for (int i=0; i<max; i++) {
int wd = c.get(Calendar.DAY_OF_WEEK);
if (wd != Calendar.SATURDAY && wd != Calendar.SUNDAY) {
workDays++;
}
c.add(Calendar.DAY_OF_MONTH, 1);
} System.out.printf("work days = %d\n", workDays);
}
}