用java怎么得到一个月除去周末(星期六、星期天)之后的具体日期

求代码,好的话,直接给分。

第1个回答  2014-07-15
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
public class CCC {
public static boolean flag = true;
public static void main(String[] args) throws IOException {
while(flag) {
System.out.println("请输入年月,格式: yyyy-MM");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
Calendar c = Calendar.getInstance(java.util.Locale.CHINA);
String[] sp = s.split("-");
c.set(Calendar.YEAR, Integer.parseInt(sp[0]));
c.set(Calendar.MONTH, Integer.parseInt(sp[1]) - 1);
c.set(Calendar.DATE, 1);//计算1号是星期几
int countDay = getDay(sp[0], sp[1]);
System.out.println("总天数" +getDay(sp[0], sp[1]));
int workDay = 0;
int countWeek = countDay/7;
int wd = c.get(Calendar.DAY_OF_WEEK);
int yuDay = getYuTian(countDay%7, wd);
workDay = countWeek * 5 + yuDay;
System.out.println("工作日:" + workDay + "天!");
}
}

public static int getDay(String year, String month) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, Integer.parseInt(year));
c.set(Calendar.MONTH, Integer.parseInt(month) - 1);
return c.getActualMaximum(Calendar.DAY_OF_MONTH);
}
public static int getYuTian(int endDay, int toDay) {
int yuTian = 0;
if(1 == toDay) {
toDay += 5;
} else {
toDay = toDay -2;
}
yuTian = endDay + toDay;
if(yuTian > 7) {
return yuTian%7;
}
if(yuTian == 6) {
return endDay -1;
} else if(yuTian == 7) {
return endDay -2;
} else {
return endDay;
}
}
}本回答被提问者和网友采纳
第2个回答  2014-07-14
除去周末后的具体日期,是指输入一个月的日程表,输出weekdays的日期吗?追问

就是假如我传给你一个年份和月份,返回所有这个月份下的所有上班时间

追答

这个简单,你把所有的日期排列存入一个星期数组week[a][b](a是周数,b是天数)然后选定b>=1&&b<=5的日期并且输出就可以了

追问

我需要具体代码,而且不是想返回二维数组,直接用一个简单的数组将日期以yyyy-MM-dd的形式一个一个的放进去。