java月份天数
Ⅰ 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那就是修改月份,所以整个代码读下来就变成
获取当前时间A
修改A的月份为输入条件得到时间B
计算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 语句。