java根据年月获取对应的月份工作日天数

java根据年月获取对应的月份工作日天数,第1张

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;

    }

}

Calendar time=CalendargetInstance()

timeclear();

timeset(CalendarYEAR,year); //year 为 int

timeset(CalendarMONTH,month-1); //month 为int

int day=timegetActualMaximum(CalendarDAY_OF_MONTH);

某年year ,某月month ,天数day

import javautilScanner;

public class DayOfMonth {

public static void main(String args[]){

Scanner s=new Scanner(Systemin);

Systemoutprintln("请输入年");

int year=snextInt();

Systemoutprintln("请输入月");

int month=snextInt();

switch(month){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

Systemoutprintln(year+"年"+month+"月有31天");

break;

case 4:

case 6:

case 9:

case 11:

Systemoutprintln(year+"年"+month+"月有30天");

break;

case 2:

if((year%4 == 0&&year%100 != 0)||year%400 == 0)

Systemoutprintln(year+"年2月有29天");

else

Systemoutprintln(year+"年2月有28天");

break;

}

}

}

这样可以了么?

int y; // year可以随便设定

int m; //month可以随便设定

int d=0; //day设默认

int i=0;

for(i < 2000; i++){

if(y==4i){

switch [m]{

case '2'

return d=29;

break;

case '1'

case '3'

case '5'

case '7'

case '8'

case '10'

case '12'

return d=31;

default: return d=30;

}

}

else{

switch [m]{

case '2'

return d=28;

break;

case '1'

case '3'

case '5'

case '7'

case '8'

case '10'

case '12'

return d=31;

default: return d=30;

扩展质料:

switch语句执行时会从上到下根据括号中表达式的值作比较,当某个case语句中的表达式与此值相同时,就执行这个case语句或语句序列,直到遇到break为止。 break语句是必须有的,它用来结束switch语句的执行。

如果所有case语句后面的表达式都不等于switch语句的表达式expr1的值川0执行default后面的默认语句序列。不过,default部分是可选的。如果没有这一部分,并遇到所有case语句都不匹配,那么,就不作任何处理而进入后续程序段的执行。

可见,一个switch语句可以代替多个if-else语句组成的分支结构,而switch语句从思路上显得更清晰。

使用switch语句时,要注意expr1必须是符合byte,char,short,int类型的常量表达式,而不能用浮点类型或long类型,//(也不能为一个字符串)。

参考资料:

switch-百度百科

public static void main(String[] args) {

//SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");

try {

Systemoutprintln("当前月共多少天 : " + DateUtilsgetDaysOfTheMonth(new Date()));

Systemoutprintln("当前月星期天天数:"+DateUtilsgetSundays(new Date()));

} catch (Exception e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

public static int getDaysOfTheMonth(Date date){//获取当月天数

Calendar rightNow = CalendargetInstance();

rightNowsetTime(date); // 要计算你想要的月份,改变这里即可

int days = rightNowgetActualMaximum(CalendarDAY_OF_MONTH);

return days;

}

// 返回当月星期天数

public static int getSundays(Date dat) {

int sundays = 0;

SimpleDateFormat sdf = new SimpleDateFormat("EEEE");

Calendar setDate = CalendargetInstance();

// 从第一天开始

int day;

for (day = 1; day <= getDaysOfTheMonth(dat); day++) {

setDateset(CalendarDATE, day);

String str = sdfformat(setDategetTime());

//Systemoutprintln("str:"+str);

if (strequals("星期日")) {

sundays++;

}

}

return sundays;

}

import javautil;

public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(Systemin);

Systemoutprintln("请输入年份");

int year = inputnextInt();

Systemoutprintln("请输入月份");

int month = inputnextInt();

if(month==2){

if (((year % 100 == 0) && (year % 400 == 0))

|| ((year % 100 != 0) && (year % 4 == 0))) {

Systemoutprintln(month+"月份天数是29天");

return;

}else {

Systemoutprintln(month+"月份天数是28天");

return;

}

}else if(month%2==0 ) {

Systemoutprintln(month+"月份是30天");

}else if(month%2!=0) {

Systemoutprintln(month+"月份是31天");

}

}

}

import javautilScanner;

public class P {

public static void main(String[] args) {

final int[] month={31,28,31,30,31,30,31,31,30,31,30,31};

int y,m,s;

Scanner sc=new Scanner(Systemin);

Systemoutprint("请输入年、月(以空格分隔,如2016 8)");

y=scnextInt();

m=scnextInt();

s=month[m-1];

if(2==m && (0==y%400 || (0==y%4 && 0!=y%100)))

s+=1;

for(int i=1;i<s;i++)

Systemoutprint(""+m+"月"+i+"日,");

Systemoutprintln(""+m+"月"+s+"日");

scclose();

}

}

int intYear = 2014;//年

for(int i=1;i<13;i++){//i代表12个月

Calendar cal = CalendargetInstance();

calset(CalendarYEAR, intYear);

calset(CalendarMONTH, i - 1);

calset(CalendarDAY_OF_MONTH, 1);

int value = calgetActualMaximum(CalendarDAY_OF_MONTH);

Systemoutprintln(intYear+"年"+i+"月:"+value+"天");

}

打印结果

2014年1月:31天

2014年2月:28天

2014年3月:31天

2014年4月:30天

2014年5月:31天

2014年6月:30天

2014年7月:31天

2014年8月:31天

2014年9月:30天

2014年10月:31天

2014年11月:30天

2014年12月:31天

以上就是关于java根据年月获取对应的月份工作日天数全部的内容,包括:java根据年月获取对应的月份工作日天数、用Java编程:输入某年某月后,输出该月的天数。、java编写某年某月有多少天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10147754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存