java_年月中最大天数,区分闰年平年

流程大概是 1.提示输入年号 2.获得输入的值赋给y 3.提示输入月份 4.获得输入的值赋给m 5.调用zdts()方法,并将y和m的值传递到这个方法进行运算 6.获得zdts()方法的返回值,赋给max 7.显示max的值

 import java.util.Scanner;

/**
 * Created by DELL on 2017/6/19.
 */
public class DaysCuculator {
    public static void main(String[] args){
        System.out.println("请输入年份:");
        Scanner yearScanner = new Scanner(System.in);
        int y = yearScanner.nextInt();
        System.out.println("请输入月份:");
        Scanner monthScanner = new Scanner(System.in);
        int m = monthScanner.nextInt();
        int max = zdts(y,m);
        System.out.println(max);
    }
    private static int zdts(int year,int month){
        //判断是否是二月
        if(month==2){
            //是二月,判断平年与闰年
        if(year%100==0 && year%400==0||year%100!=0&&year%4==0){
                  return 29;//是闰年,二月29天
        }else{
            return 28;//不是闰年,二月28天
        }}else{
            return  30;//不是二月返回30
        }

    }
}

这个代码没有考虑农历的大月与小月

public class 万年历 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个年份:");
        int year = input.nextInt();
        System.out.println("请输入一个月份:");
        int month = input.nextInt();
        int day = 0;
        for (int i = 1900; i < year; i++) {
            if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
                day = day + 366;
            } else {
                day = day + 365;
            }
        }
        for (int i = 1; i < month; i++) {
            if (i == 2) {
                if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                    day = day + 29;
                } else {
                    day = day + 28;
                }
            } else if (i == 4 || i == 6 || i == 9 || i == 11) {
                day = day + 30;
            } else {
                day = day + 31;
            }
        }

        System.out.println("日\t一\t二\t三\t四\t五\t六");
        int kg = (day + 1) % 7;
        for (int i = 1; i <= kg; i++) {
            System.out.print("\t");
        }
        int t = 0;
        if (month == 2) {
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                t = 29;
            } else {
                t = 28;
            }
        } else if (month == 4 || month == 6 || month == 9 || month == 11) {
            t = 30;
        } else {
            t = 31;
        }
        for (int i = 1; i <= t; i++) {
            System.out.print(i + "\t");
            if ((day + i) % 7 == 6) {
                System.out.println();
            }
        }
    }
}

之前学习的时候写过一个万年历的例子,希望对你有所帮助~