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类型,//(也不能为一个字符串)。
参考资料:
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编写某年某月有多少天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)