📄 printcalendar.java
字号:
public class PrintCalendar
{
public static void main(String[] args)
{
System.out.print("Enter full year:");
int year=MyInput.readInt();
System.out.print("Enter month in number between 1 and 12:");
int month=MyInput.readInt();
printMonth(year,month);
}
static void printMonth(int year,int month)
{
int startDay=getStartDay(year,month);
int numOfDaysInMonth=getNumOfDaysInMonth(year,month);
printMonthTitle(year,month);
printMonthBody(startDay,numOfDaysInMonth);
}
static int getStartDay(int year,int month)
{
int starDay1800=3;
long totalNumOfDays=getTotalNumOfDays(year,month);
return(int)((totalNumOfDays+starDay1800)%7);
}
static long getTotalNumOfDays(int year,int month)
{
long total=0;
for(int i=1800;i<year;i++)
{
if(isLeapYear(i))
total+=366;
else
total+=365;
}
for(int i=1;i<month;i++)
total+=getNumOfDaysInMonth(year,i);
return total;
}
static int getNumOfDaysInMonth(int year,int month)
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
return 31;
if(month==4||month==6||month==9||month==11)
return 30;
if(month==2)
if(isLeapYear(year))
return 29;
else
return 28;
return 0;
}
static boolean isLeapYear(int year)
{
if((year%400==0)||(year%100!=0)||(year%4==0))
return true;
return false;
}
static void printMonthBody(int startDay,int numOfDaysInMonth)
{
int i=0;
for(i=0;i<startDay;i++)
System.out.print(" ");
for(i=1;i<numOfDaysInMonth+1;i++)
{
if(i<10)
System.out.print(" "+i);
else
System.out.print(" "+i);
if ((i+startDay)%7==0)
System.out.println();
}
System.out.println();
}
static void printMonthTitle(int year,int month)
{
System.out.println(" "+ getMonthName(month)+" "+year);
System.out.println("----------------------------------------");
System.out.println(" Sun Mon Tue Wed Thu Fri Sat") ;
}
static String getMonthName(int month)
{
String monthName=null;
switch(month)
{
case 1: monthName="January";break;
case 2: monthName="February";break;
case 3: monthName="March";break;
case 4: monthName="April";break;
case 5: monthName="May";break;
case 6: monthName="June";break;
case 7: monthName="July";break;
case 8: monthName="August";break;
case 9: monthName="September";break;
case 10: monthName="October";break;
case 11: monthName="November";break;
case 12: monthName="Deceber";break;
}
return monthName;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -