想法没有问题 一个小问题 在最后做月份日期相加的时候 循环
for (int j = 1; j <= month; j++) {//此处应该判断 j 是哪个月 你判断是month 那么永远都是你输入的月了
if (j == 1 || j == 3 || j == 5 || j == 7 || j == 8 || j == 10 || j == 12) {
days = 31;
} else if (j == 4 || j == 6 || j == 9 || j == 11) {
days = 30;
} else if (j == 2) {
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
days = 29;
} else {
days = 28;
}
} else {
Systemoutprintln("输入错误");
}
totaldays += days;
}
import javautilCalendar;
public class Main {
public static void main(String[] args) {
Systemoutprintln(countWorkDay(2018, 6));
}
/
获取指定年月有多少个工作日)
@param year
@param month
@return
/
public static int countWorkDay(int year, int month) {
Calendar c = CalendargetInstance();
cset(CalendarYEAR, year);
// 月份是从0开始计算,所以需要减1
cset(CalendarMONTH, month - 1);
// 当月最后一天的日期
int max = cgetActualMaximum(CalendarDAY_OF_MONTH);
// 开始日期为1号
int start = 1;
// 计数
int count = 0;
while (start <= max) {
cset(CalendarDAY_OF_MONTH, start);
if (isWorkDay(c)) {
count++;
}
start++;
}
return count;
}
// 判断是否工作日(未排除法定节假日,由于涉及到农历节日,处理很麻烦)
public static boolean isWorkDay(Calendar c) {
// 获取星期,1~7,其中1代表星期日,2代表星期一 7代表星期六
int week = cget(CalendarDAY_OF_WEEK);
// 不是周六和周日的都认为是工作日
return week != CalendarSUNDAY && week != CalendarSATURDAY;
}
}
以上就是关于java新手,编译万年历中1990年1.1到某一年的天数,比如1990.2月。计算出来只是连续两个2月相加,求大神解全部的内容,包括:java新手,编译万年历中1990年1.1到某一年的天数,比如1990.2月。计算出来只是连续两个2月相加,求大神解、java根据年月获取对应的月份工作日天数、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)