万年历
如题,就是万年历而已。
只是想记录下这个月学习的进程。
代码如下:
import java.util.Scanner;
public class printCalendarDemo
{
public static void main(String [] agrs)
{
int year,month;
int days=0,totDays=0,curMonDays=0;
boolean isRu;
Scanner input=new Scanner(System.in);
System.out.println("输入年:");
year=input.nextInt();
System.out.println("输入月:");
month=input.nextInt();
if((year%400==0)||(year%4==0&&year%100!=0))
isRu=true;
else
isRu=false;
for(int i=1900;i<year;i++)
{
if((i%400==0)||(i%4==0&&i%100!=0))
totDays+=366;//这个居然记成356
else
totDays+=365;//这个居然记成355...
}
for(int i=1;i<=month;i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
days=31;
else if(i==2)
{
if(isRu)
days=29;
else
days=28;
}
else if(i==4||i==6||i==9||i==11)
days=30;
if(i!=month)
totDays+=days;
}
int beforeDays=0;//此求出的是星期几,也等于制表符的个数。
beforeDays=1+totDays%7;
if(beforeDays==7)
beforeDays=0;
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
for(int i=0;i<beforeDays;i++)
System.out.print("\t");
for(int i=1;i<=days;i++)
{
System.out.print(i+"\t");
if((i+beforeDays)%7==0)
System.out.println();
}
}
}