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