判断某月天数的三种方法

分析:

1、该年是否是闰年(1.年份能被4整除;2.年份若是100的整数倍的话,需被400整除,否则是平年)

2、各个月份的天数,31天(1.3.5.7.8.10.12),30天(4.6.9.11),28/29天(2)。

第一种方法:使用if(){......}else{...}语句
package com_days;

import java.util.Scanner;
public class DaysDemo01 {
public static void main(String[] args) {
// 使用Scanner
Scanner scanner = new Scanner(System.in);

System.out.println("请输入年");
int year = scanner.nextInt();

System.out.println("请输入月");
int month = scanner.nextInt();
int days = 0;

if (month < 1 || month > 12) {
System.out.println("笨蛋,一年有多少个月都不知道!");
} else if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
days = 29;
} else {
days = 28;
}
System.out.println(year + "年" + month + "月有" + days + "天");

} else {
if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
days = 30;
} else {
days = 31;
}
System.out.println(year + "年" + month + "月有" + days + "天");
}
}
}


第二种方法:使用switch(){case1:...case2:...case3:...break}
package com_days;

import java.util.Scanner;
public class DaysDemo02 {
public static void main(String[] args) {
// 使用Scanner
Scanner scanner = new Scanner(System.in);

System.out.println("请输入年");
int year = scanner.nextInt();

System.out.println("请输入月");
int month = scanner.nextInt();

System.out.println(year + "年" + month + "月有" + days(year, month) + "天");
}
// 定义days函数。
public static int days(int year, int month) {
int days = 0;
if (month != 2) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
}
} else {
// 闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
days = 29;
else
days = 28;
}
return days;
}
}

第三种方法:使用Calendar日期函数
package com_days;

import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Calendar;  
import java.util.GregorianCalendar;  
import java.util.Locale;  
import java.util.Scanner;  
      
public class DaysDemo03 {  
      public static void main(String[] args) {  
       // 1.使用Calendar日期函数(声明)  
      Calendar calendar = new GregorianCalendar();  
       // 或者用Calendar calendar = Calendar.getInstance();  
   
       // 格式化日期--设置date  
      SimpleDateFormat sdf = new SimpleDateFormat("", Locale.ENGLISH);  
      sdf.applyPattern("yyyyMM");  // 年月格式  
   
      Scanner scanner = new Scanner(System.in); 
      System.out.println("请输入年月,格式为:yyyyMM");
      String date = scanner.next(); // 日期格式  
   
      try {  
            System.out.println(sdf.parse(date));  
            calendar.setTime(sdf.parse(date));  
      } catch (ParseException e) {  
            e.printStackTrace();  
      }  
       
      int num2 = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);  
      System.out.println(num2);  
    // 日期减一,取得上月最后一天时间对象  
    // cal.add(Calendar.DAY_OF_MONTH, -1);  
    // 输出上月最后一天日期  
    // System.out.println(cal.get(Calendar.DAY_OF_MONTH));     
      }     
}  
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值