用Java程序写一个日历,用户输入某年某月某日时能将这个月的日历打出来。
import java.util.*;
public class 日历 {
public static void main(String[] agrs){
int i,k,k2,sum=0,li=1,total=0;
String answer,weekday="星期";
Scanner input=new Scanner(System.in);
do
{
System.out.print("请输入年份:");
int year=input.nextInt();
System.out.print("请输入月份:");
int month=input.nextInt();
System.out.print("请输入日期:");
int day=input.nextInt();
for(i=1900;i<year;i++)
{
if(i%4==0&&i%100!=0 || i%400==0)
{
sum=sum+366;
}
else{
sum=sum+365;
}
}
for(i=1;i<month;i++)
{
if(i==2)
{
if(year%4==0&&year%100!=0 || year%400==0)
{
sum+=29;
}
else
{
sum+=28;
}
}
else if(i==4||i==6||i==9||i==11)
{
sum+=30;
}
else
sum+=31;
}
total=sum;
sum+=day;
total+=1;
k=sum%7;
k2=total%7;
switch(k)
{
case 0:weekday="星期天";
break;
case 1:weekday="星期一";
break;
case 2:weekday="星期二";
break;
case 3:weekday="星期三";
break;
case 4:weekday="星期四";
break;
case 5:weekday="星期五";
break;
case 6:weekday="星期六";
break;
}
System.out.println(year+"年"+month+"月"+day+"日是"+weekday);
System.out.println("天\t一\t二\t三\t四\t五\t六\t");
for(i=1;i<=k2;i++)
{
System.out.print("\t");
}
//判断是哪个月,有几天
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
li=31;
else if(month==2)
{
if(year%4==0&&year%100!=0 || year%400==0)
{
li=29;
}
else
li=28;
}
else
li=30;
for(i=1;i<=li;i++)
{
if(k2%7==0)
{
System.out.println();
System.out.print(i+"\t");
}
else
System.out.print(i+"\t");
k2++;
}
System.out.println();
System.out.println("是否继续查询:(yes/no)");
answer=input.next();
sum=0;
li=1;
total=0;
}while(answer.equals("yes"));
}
}
查找完打印出日历后,还可以继续查询,输入yes继续查询,no则结束查询。
当用户输入时间后,会打印出这一天是星期几,然后再输出这个月的日历,运行结果如图所示: