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 語句。