2020-8-17创建方法并使用方法实现输出一年的日历

本文介绍了一个用于打印2020年完整日历的Java程序,包括判断闰年、计算每月天数、累计月份天数及打印日历等功能。通过精确的算法,该程序能够准确地展示每个月的日期布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static void main (String[] args) {
printCalendar(2020);
}
/**

  • 判断指定的年份是不是闰年
  • @param year 被判断的年份
  • @return 如果是闰年就返回turn,不是闰年就返回false
    /
    public static boolean isLeapYear(int year) {
    return (year%40&&year%100!=0)||year%4000;
    }
    /
    *
  • 计算出指定月份的天数
  • @param month被指定的月份
  • @return 返回指定月份的天数
    /
    public static int monthDays(int month,int year) {
    if(month4|month6|month9|month11) {
    return 30;
    }else if(month==2) {
    return isLeapYear(year)?29:28;
    }else {
    return 31;
    }
    }
    /
    *
  • 计算出当前年当前月份前所有的天数
  • @param nowMonth 当前月份
  • @param nowYear 当前年
  • @return 返回当前年当前月份前所有的天数
    /
    public static int countAllMonthDays(int nowMonth,int nowYear) {
    int allMonthDays=0;
    for(int i=1;i<nowMonth;i++) {
    allMonthDays+=monthDays(i,nowYear);
    }
    return allMonthDays;
    }
    /
    *
  • 计算从1900年到当前年前一年的所有年份的天数
  • @param nowYear 当前年
  • @return 返还从1900年到当前年前一年所有年份的总天数
    */
    public static int countAllYearDays(int nowYear) {
    int allYearDays=0;
    for(int i=1900;i<nowYear;i++) {
    allYearDays+=isLeapYear(i)?366:365;
    }
    return allYearDays;
    }
    public static void printCalendar(int nowYear) {
    int allYearDays=countAllYearDays(nowYear);
    for(int i=1;i<=12;i++) {
    //先打印月份
    System.out.println(i+“月”);
    //打印星期
    System.out.print(“星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期天\t\n”);
    //打印日期前面的空格
    int remainder=(countAllMonthDays(i,nowYear)+allYearDays)%7;
    for(int j=0;j<remainder;j++) {
    System.out.print("\t");
    }
    //打印一年的日历
    for(int k=1;k<=monthDays(i,nowYear);k++) {
    if((remainder+k)%7==0) {
    System.out.println(k+"\t");
    }else {
    System.out.print(k+"\t");
    }
    }
    System.out.println();
    }
    }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值