Java实现任一年日历的打印

java打印日历

Java初学者

手动输入你想要查询的年份,回车即可打印。

代码部分

import java.util.Scanner;

public class calendar {
 	static int year;
 	public static void main(String[] args) {
  		Scanner in=new Scanner(System.in);
  		System.out.println("请输入您要查询的年份:");
  		year=in.nextInt();
  		System.out.println(year+"年的日历是");
  		printmonth();
 }

	/**
 	* 判断目标年是否为闰年
  	* @param y
  	* @return
  	*/
 	public static boolean isleap_year(int y) {//或者直接将以下5行改为:return ((y%4==0&&y%100!=0)||(y%400==0))也可以。
  		if(y%4==0&&y%100!=0||y%400==0) {
   			return true;
  		}else {
   			return false;
  		}
 	}

	/**
  	* 判断目标年第一天是周几
  	* @param y
  	* @return
  	*/
 	public static int firstday(int y) {
  		long n=y*365;
  		for(int i=1;i<=y;i++) {
   			if(isleap_year(y)) {
    				n+=1;
   			}
  		}
  		return (int)n%7;
 	}

	/**
  	* 打印每个月的表头
  	*/
 	public static void printmonthhead() {
  		System.out.println("════════════════════════════");
  		System.out.println("日    一    二    三    四    五    六");
 	}

	/**
  	* 判断每个月有几天
  	* @param m
  	* @return
  	*/
 	public static int monthday(int m) {
  		switch(m) {
  			case 1:
  			case 3:
  			case 5:
  			case 7:
  			case 9:
  			case 11:
   				return 31;
  			case 2:
   				if(isleap_year(year)) {
    					return 29;
   				}else {
    					return 28;
   				}
 			case 4:
  			case 6:
  			case 8:
  			case 10:
  			case 12:
   				return 30;
  			default:
   				return 0;
  		}
 	}

	/**
  	* 打印某年12个月的日历
  	*/
 	public static void printmonth() {
  		int preweekday=firstday(year);//用于存储每个月前面有几天为空
  		for(int mon=1;mon<=12;mon++) {
   			System.out.println("\n┈┈┈┈┈┈┈┈┈┈┈"+mon+"月┈┈┈┈┈┈┈┈┈┈┈┈┈");
   			printmonthhead();
   			for(int i=1;i<=preweekday;i++) {
    				System.out.print("    ");
   			}
   			for(int d=1;d<=monthday(mon);d++) {
    				if(d<10) {
     					System.out.print(d+"   ");
    				}else {
     					System.out.print(d+"  ");
    				}
    				preweekday=(preweekday+1)%7;
    				if(preweekday==0) {
     					System.out.println();
    				}
   			}
   			System.out.println();
  		}
 	}
}

效果截图

日历打印
这就是简单的实现了我们的日历打印了。有什么意见与建议,欢迎大家评论留言。
我是一名Java初学者,推荐大家一本学习资料,看了以后收获挺大的
链接:https://pan.baidu.com/s/1xYtkXyDqWJVM34vkjtIKHw
提取码:l1mv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值