樓上正解,不過(guò)樓主問(wèn)出這個(gè)問(wèn)題可能也是初學(xué)者,我就提供一下用簡(jiǎn)單語(yǔ)法的代碼吧
公司主營(yíng)業(yè)務(wù):網(wǎng)站制作、成都做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出宣化免費(fèi)做網(wǎng)站回饋大家。
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("請(qǐng)輸入年份");
int year= scan.nextInt();//得到需求年份
System.out.println("請(qǐng)輸入月份");
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+"月的天數(shù)為:"+31);
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(year+"年"+month+"月的天數(shù)為:"+30);
case 2:
if((year%400)==0 || ((year%4)==0)((year%100)!=0)){
System.out.println(year+"年2月的天數(shù)為:"+29);
}else{
System.out.println(year+"年2月的天數(shù)為:"+28);
}
}
}
import?java.util.*;
/**
*
*?這里沒(méi)有對(duì)輸入非數(shù)字的數(shù)進(jìn)行處理!
*/
public?class?Shell?{
public?static?void?main(String[]?args)?{
Scanner?sc?=?new?Scanner(System.in);
int?y?=?0;
int?n?=?0;
//輸入年份,用于判斷閏年!
System.out.println("請(qǐng)輸入年份:");
y?=?sc.nextInt();
System.out.println("請(qǐng)輸入月份:");
n?=?sc.nextInt();
switch?(n)?{
case?1:
case?3:
case?5:
case?7:
case?8:
case?10:
case?12:
System.out.println(n?+?"月份有:31天");
break;
//對(duì)于2月份需要判斷是否為閏年
case?2:
if?((y?%?4?==?0??y?%?100?!=?0)?||?(y?%?400?==?0))?{
System.out.println(n?+?"月份有:29天");
break;
}?else?{
System.out.println(n?+?"月份有:28天");
break;
}
case?4:
case?6:
case?9:
case?11:
System.out.println(n?+?"月份有:30天");
break;
default:
System.out.println("請(qǐng)輸入正確的年份和月份");
break;
}
}
}
這個(gè)題目的邏輯比較簡(jiǎn)單,先用數(shù)組記錄出一年12個(gè)月每個(gè)月的天數(shù),其中2月記錄為28天,在判斷當(dāng)年是否是閏年,如果是閏年,將2月天數(shù)記錄為29天,然后輸入,例如數(shù)組month,輸出month[m - 1],這就是這個(gè)月的天數(shù)了。
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("請(qǐng)輸入年份");
int year = input.nextInt();
System.out.println("請(qǐng)輸入月份");
int month = input.nextInt();
if(month==2){
if (((year % 100 == 0) (year % 400 == 0))
|| ((year % 100 != 0) (year % 4 == 0))) {
System.out.println(month+"月份天數(shù)是29天");
return;
}else {
System.out.println(month+"月份天數(shù)是28天");
return;
}
}else if(month%2==0 ) {
System.out.println(month+"月份是30天");
}else if(month%2!=0) {
System.out.println(month+"月份是31天");
}
}
}
按照你的要求,如何得到一個(gè)月有多少天,這里并沒(méi)有說(shuō)是什么年份,所以默認(rèn)當(dāng)年(不同年份的月份天數(shù)可能不一樣,例如閏年的二月)
因此問(wèn)題變?yōu)?/p>
輸入條件:指定某一個(gè)月
輸出結(jié)果:當(dāng)年這個(gè)月份的天數(shù)
思路:在Java8里新的時(shí)間API里,月份已經(jīng)被抽象成了枚舉Month,所以可以把輸入條件定義為枚舉類型的Month,然后獲取當(dāng)前時(shí)間X,把時(shí)間X的月份修改為輸入條件的月份,此時(shí)時(shí)間X變?yōu)閄1,根據(jù)本身提供的方法lengthOfMonth就可以直接得到X1所在當(dāng)月的天數(shù)了
代碼:(請(qǐng)將JDK升到8)
public?static?void?main(String[]?args)?{
System.out.println(countDaysInMonth(Month.MAY));
}
public?static?int?countDaysInMonth(Month?month){
//?獲取當(dāng)前時(shí)間
LocalDate?now?=?LocalDate.now();
System.out.println(now);
//?把當(dāng)前時(shí)間的月份修改為輸入的月份
LocalDate?thisMonthDate?=?now.withMonth(month.getValue());
System.out.println(thisMonthDate);
return?thisMonthDate.lengthOfMonth();
}
也可以連著寫(xiě),更美觀點(diǎn)
public?static?int?countDaysInMonth(Month?month){
return?LocalDate.now()
.withMonth(month.getValue())
.lengthOfMonth();
}
非常直觀且易懂好用,在Java8里with就代表著修改意思,withMonth那就是修改月份,所以整個(gè)代碼讀下來(lái)就變成
獲取當(dāng)前時(shí)間A
修改A的月份為輸入條件得到時(shí)間B
計(jì)算B所在月的天數(shù)
代碼實(shí)現(xiàn)如下:
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("本月天數(shù):" + currentMaxDays);
System.out.println("2017年9月天數(shù):" + maxDaysByDate);
}
/**
* 獲取當(dāng)月的 天數(shù)
*/
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;
}
/**
* 根據(jù)年 月 獲取對(duì)應(yīng)的月份 天數(shù)
*/
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;
}
}