📄 printdaily.java
字号:
/*亲爱的,只要你静下来好好看,你一定能看懂的,我爱你*/
import java.io.*;
public class PrintDaily
{
static int j,n; //j是全局变量。
static Boolean Is_LeapYear(int year) //该方法判断是否是闰年
{
if(year % 4 ==0 && year % 100 !=0 || year % 400 ==0)
return(true); //若是闰年返回true
else
return(false); //否则返回false
}
static int WeekDay(int year) //该方法返回该年的1月1号是星期几
{
int c,w;
year=year%400;
if((year==0||year%4==0&&year%100!=0))c=5;
else c=6;
w=(year+year/4-year/100+1+c)%7;
return(w);
}
static int NumMonth(int month) //该方法返回当月的天数
{
if(month==2)
{
if(Is_LeapYear(n))return(29);
else return(28);
}
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
return(31);
else
return(30);
}
static void PrintR(int r) //格式化输出
{
if(r>=0&&r<10)
System.out.print(" "+r);
else
System.out.print(" "+r);
}
static void PrintWeek() //输出头部汉字
{
System.out.println(" 日 一 二 三 四 五 六");
}
static void PrintMonth(int month) //输出月历表
{
System.out.print(" "); //打印十二个空格
PrintR(month);
System.out.println();
PrintWeek(); //调用方法PrintWeek(),用来打印“ 日 一 二 三 四 五 六”
for(int a=0;a<j;a++) //该循环用来打印每月1号前面的空格
System.out.print(" "); //每个元素占四个字符的长度,所以一次输出四个空格
for(int mon=1;mon<=NumMonth(month);mon++) //该循环输出该月中的每一天
{
PrintR(mon);
j++;
if(j%7==0)
{
j=0;
System.out.println();
}
}
}
static void PrintYear(int year) //该方法用来输出年历表
{
j=WeekDay(year); //判断该年1月1号是星期几
for(int y=1;y<=12;y++)
{
PrintMonth(y);
System.out.println();
System.out.println();
}
}
public static void main(String args[])throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个年份:");
String str=br.readLine();
n=Integer.parseInt(str);
PrintYear(n);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -