当前位置:首页 » 编程语言 » java月份天数

java月份天数

发布时间: 2022-06-09 00:46:20

java里,如何得到一个月有多少天

按照你的要求,如何得到一个月有多少天,这里并没有说是什么年份,所以默认当年(不同年份的月份天数可能不一样,例如闰年的二月)

因此问题变为

输入条件:指定某一个月

输出结果:当年这个月份的天数


思路:在Java8里新的时间API里,月份已经被抽象成了枚举Month,所以可以把输入条件定义为枚举类型的Month,然后获取当前时间X,把时间X的月份修改为输入条件的月份,此时时间X变为X1,根据本身提供的方法lengthOfMonth就可以直接得到X1所在当月的天数了


代码:(请将JDK升到8

publicstaticvoidmain(String[]args){
System.out.println(countDaysInMonth(Month.MAY));
}

(Monthmonth){
//获取当前时间
LocalDatenow=LocalDate.now();
System.out.println(now);

//把当前时间的月份修改为输入的月份
LocalDatethisMonthDate=now.withMonth(month.getValue());
System.out.println(thisMonthDate);
returnthisMonthDate.lengthOfMonth();
}

也可以连着写,更美观点

(Monthmonth){
returnLocalDate.now()
.withMonth(month.getValue())
.lengthOfMonth();
}

非常直观且易懂好用,在Java8里with就代表着修改意思,withMonth那就是修改月份,所以整个代码读下来就变成

  1. 获取当前时间A

  2. 修改A的月份为输入条件得到时间B

  3. 计算B所在月的天数


Ⅱ Java实现给定任意年份和月份,输出该月有多少天

程序就自己写吧,告诉你一个思路。先判断月份是否为2月,如果是的话判断年是否为闰年,若为闰年2月为29天,若不是闰年为28天;如果要判断的月份不是2月,判断其是否为1,3,5,7,8,10,12,若是其中的一个则为31天,剩余的月份为30天

Ⅲ 怎样得到当前月份的天数(Java)

public static int getDayOfMonth(){
Calendar aCalendar = Calendar.getInstance(Locale.CHINA);
int day=aCalendar.getActualMaximum(Calendar.DATE);
return day;
}
这是获取的一个月的最大的天数。。。。

Ⅳ java 获取某月份的具体天数

楼上正解,不过楼主问出这个问题可能也是初学者,我就提供一下用简单语法的代码吧
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入年份");
int year= scan.nextInt();//得到需求年份
System.out.println("请输入月份");
int month=scan.nextInt();//得到需求月份
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(year+"年"+month+"月的天数为:"+31);
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(year+"年"+month+"月的天数为:"+30);
case 2:
if((year%400)==0 || ((year%4)==0)&&((year%100)!=0)){
System.out.println(year+"年2月的天数为:"+29);
}else{
System.out.println(year+"年2月的天数为:"+28);
}
}
}

Ⅳ java中 如何获取当月的天数,指定日期的月份天数

代码实现如下:

package test01;

import java.util.Calendar;
/**
*
* @author 码灵
* 20170905
*
*/
public class GetDay {

public static void main(String[] args) {
int currentMaxDays = getCurrentMonthDay();
int maxDaysByDate = getDaysByYearMonth(2017, 9);
System.out.println("本月天数:" + currentMaxDays);
System.out.println("2017年9月天数:" + maxDaysByDate);

}

/**
* 获取当月的 天数
*/
public static int getCurrentMonthDay() {
Calendar a = Calendar.getInstance();
a.set(Calendar.DATE, 1);
a.roll(Calendar.DATE, -1);
int maxDate = a.get(Calendar.DATE);
return maxDate;
}

/**
* 根据年 月 获取对应的月份 天数
*/
public static int getDaysByYearMonth(int year, int month) {

Calendar a = Calendar.getInstance();
a.set(Calendar.YEAR, year);
a.set(Calendar.MONTH, month - 1);
a.set(Calendar.DATE, 1);
a.roll(Calendar.DATE, -1);
int maxDate = a.get(Calendar.DATE);
return maxDate;
}

}

Ⅵ java 计算某月有多少天

这个题目的逻辑比较简单,先用数组记录出一年12个月每个月的天数,其中2月记录为28天,在判断当年是否是闰年,如果是闰年,将2月天数记录为29天,然后输入,例如数组month,输出month[m - 1],这就是这个月的天数了。

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

importjava.util.Calendar;

publicclassMain{

publicstaticvoidmain(String[]args){

System.out.println(countWorkDay(2018,6));
}

/**
*获取指定年月有多少个工作日)
*
*@paramyear
*@parammonth
*@return
*/
publicstaticintcountWorkDay(intyear,intmonth){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,year);
//月份是从0开始计算,所以需要减1
c.set(Calendar.MONTH,month-1);

//当月最后一天的日期
intmax=c.getActualMaximum(Calendar.DAY_OF_MONTH);
//开始日期为1号
intstart=1;
//计数
intcount=0;
while(start<=max){
c.set(Calendar.DAY_OF_MONTH,start);
if(isWorkDay(c)){
count++;
}
start++;
}
returncount;
}

//判断是否工作日(未排除法定节假日,由于涉及到农历节日,处理很麻烦)
publicstaticbooleanisWorkDay(Calendarc){
//获取星期,1~7,其中1代表星期日,2代表星期一...7代表星期六
intweek=c.get(Calendar.DAY_OF_WEEK);
//不是周六和周日的都认为是工作日
returnweek!=Calendar.SUNDAY&&week!=Calendar.SATURDAY;
}
}

Ⅷ (JAVA)输入年月日,计算日期是今年的第几天

import java.util.Scanner;

/**

* Created by xpf on 2018/6/22 :)

* GitHub:xinpengfei520

* Function:

*/

public class CalculateUtils {

/*平年二月28天*/

private static final int DAYS_28 = 28;

/*闰年二月29天*/

private static final int DAYS_29 = 29;

/*除了31天的月份其他均为30天*/

private static final int DAYS_30 = 30;

/*1、3、5、7、8、10、12月份31天*/

private static final int DAYS_31 = 31;

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("Please input year:");

int year = input.nextInt();

System.out.println("Please input month:");

int month = input.nextInt();

System.out.println("Please input day:");

int day = input.nextInt();

int daysInYear = getDaysInYear(year, month, day);

System.out.println("daysInYear:" + daysInYear);

}

/**

* get days in this year

*

* @param year

* @param month

* @param day

* @return

*/

public static int getDaysInYear(int year, int month, int day) {

int totalDays = 0;

switch (month) {

// 12 月份加的是11月份的天数,依次类推

case 12:

totalDays += DAYS_30;

case 11:

totalDays += DAYS_31;

case 10:

totalDays += DAYS_30;

case 9:

totalDays += DAYS_31;

case 8:

totalDays += DAYS_31;

case 7:

totalDays += DAYS_30;

case 6:

totalDays += DAYS_31;

case 5:

totalDays += DAYS_30;

case 4:

totalDays += DAYS_31;

case 3:

// 判断是否是闰年

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

totalDays += DAYS_29;

} else {

totalDays += DAYS_28;

}

case 2:

totalDays += DAYS_31;

case 1: // 如果是1月份就加上输入的天数

totalDays += day;

}

return totalDays;

}

}

【解题思路】

1、通过年份区分是闰年还是平年,平年 2 月 28 年,闰年 2 月 29 天。

2、1、3、5、7、8、10、12 月份为 31 天,其余月份为 30 天。

3、将每个月的天数相加即可,如果输入的是 12 月,则从 11 月往前累加到1月。

(8)java月份天数扩展阅读

其他java计算日期的方式

package study01;

import java.util.Scanner;

public class TestDay {

/*

* 输入2017年的月和日:month=?,day=? 输出输入的日期是2017年的第几天,使用switch完成

*/

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.print("month=");

int month = sc.nextInt();

System.out.print("day=");

int day = sc.nextInt();

int days = 0;

switch (month) {

case 12:

days += 30;

case 11:

days += 31;

case 10:

days += 30;

case 9:

days += 31;

case 8:

days += 31;

case 7:

days += 30;

case 6:

days += 31;

case 5:

days += 30;

case 4:

days += 31;

case 3:

days += 28;

case 2:

days += 31;

case 1:

days += day;

}

if(days>365){

System.out.println("你输入的已经超过了365天了");

}else{

System.out.println("第" + days + "天");

}

}

}

输出的结果如下:

month=12

day=31

第365天

Ⅸ java编程 判断月份,判断天数

importjava.util.*;
/**
*
*这里没有对输入非数字的数进行处理!
*/
publicclassShell{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
inty=0;
intn=0;
//输入年份,用于判断闰年!
System.out.println("请输入年份:");
y=sc.nextInt();
System.out.println("请输入月份:");
n=sc.nextInt();
switch(n){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
System.out.println(n+"月份有:31天");
break;
//对于2月份需要判断是否为闰年
case2:
if((y%4==0&&y%100!=0)||(y%400==0)){
System.out.println(n+"月份有:29天");
break;
}else{
System.out.println(n+"月份有:28天");
break;
}
case4:
case6:
case9:
case11:
System.out.println(n+"月份有:30天");
break;
default:
System.out.println("请输入正确的年份和月份");
break;
}
}
}

Ⅹ 用java编写:输入任意年份和月份,输出对应月份的天数。

用 java编写:输入任意年份和月份,输出对应月份的天数,首先判断输入年份是否是闰年,然后使用switch 方法判断月份,判断代码如下:

public class GetDays {

public static int getDays(int year, int month) {
int days = 0;
boolean isLeapYear = false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
System.out.println("这一年是闰年");
isLeapYear = true;
} else {
System.out.println("这一年不是闰年");
isLeapYear = false;
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if (isLeapYear) {
days = 29;
} else {
days = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
System.out.println("error!!!");
break;
}
return days;
}
}

(10)java月份天数扩展阅读

在java 语言中switch 语法的使用规则为:

1、switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

2、switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

3、case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。

3、当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。

热点内容
解除先制的密码是多少 发布:2025-02-08 08:10:13 浏览:859
c语言程序设计豆瓣 发布:2025-02-08 08:08:06 浏览:525
学校服务器如何进入密码界面 发布:2025-02-08 08:05:45 浏览:821
UE4源码编译要多久 发布:2025-02-08 07:52:50 浏览:231
java架构师做什么 发布:2025-02-08 07:38:32 浏览:774
java解码器 发布:2025-02-08 07:25:35 浏览:297
p4忘记密码了如何刷机 发布:2025-02-08 07:25:25 浏览:307
java分隔 发布:2025-02-08 07:15:02 浏览:813
源码乘法竖式 发布:2025-02-08 07:05:48 浏览:137
天天酷跑脚本脚本精灵 发布:2025-02-08 07:05:15 浏览:346