Java实验项目二打印万年历
Posted 15,软件王东旭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实验项目二打印万年历相关的知识,希望对你有一定的参考价值。
package _____;
import java.util.Scanner;
public class wnl//万年历主类
{
public static void main(String[] args)
{
menu();
Scanner sc=new Scanner(System.in);
int menu=sc.nextInt();
if(menu==1)
{
System.out.println("(1)、请输入一个年份");
int year=sc.nextInt();
boolean f1=pdrn(year);
if(f1==true)
{
System.out.println("该年份是闰年");
}
else
{
System.out.println("该年份不是闰年,是平年");
}
}
else if(menu==2)
{
System.out.println("(2)、请输入几年几月份");
int year=sc.nextInt();
int month=sc.nextInt();
int day=monthDay(year,month);
System.out.println("该"+month+"月有"+day+"天");
}
else if(menu==3)
{
System.out.println("(3)、请输入几年几月");
int year=sc.nextInt();
int month=sc.nextInt();
int days=timesum(year,month);
System.out.println(year+"年"+month+"月前距1900年1月1号有"+days+"天");
}
else
{
System.out.println("(4)、请输入你想打印几年几月");
int year=sc.nextInt();
int month=sc.nextInt();
printCalendar(year,month);
}
}
public static void menu()
{
System.out.println("请选择你想要测试的是哪一项");
System.out.println("(1)判断闰年");
System.out.println("(2)判断某年某月有多少天");
System.out.println("(3)计算某年某月前距离1900年1月1日的总天数");
System.out.println("(4)输出某年某月日历");
}
public static boolean pdrn(int year)//判断闰年
{
if(year%400==0&&year%100==0)
{
return true;
}
else if(year%4==0&&year%100!=0)
{
return true;
}
else
{
return false;
}
}
public static int monthDay(int y,int m)//计算某个月天数
{
boolean f2=pdrn(y);
if(m==2)//2月时候
{
if(f2==true)
{
return 29;
}
else
{
return 28;
}
}
else if(m==4||m==6||m==9||m==11)
{
return 30;
}
else
{
return 31;
}
}
public static int timesum(int y,int m)//计算天数和
{
int days=0;
if(y<1900)
{
System.out.println("请输入1900年以后的时间");//如果用户不小心输入1900年以前的时间,系统退出
System.exit(-1);
}
for(int i=1900;i<y;i++)
{
if(pdrn(i)==true)
{
days+=366; //闰年加上366天
}
else
{
days+=365; //平年加上365天
}
}
for(int j=1;j<m;j++)
{
days+=monthDay(y,j); //加上每个月的天数
}
return days;
}
public static void printCalendar(int y,int m)
{
int days=timesum(y,m);
int blank=(days+1)%7;
int day=monthDay(y,m);
System.out.println("日\t"+"一\t"+"二\t"+"三\t"+"四\t"+"五\t"+"六\t");
for(int i=1;i<=blank;i++)
{
System.out.print("\t");
}
for(int i=1;i<=day;i++)
{
System.out.print(i+"\t");
if((i+blank)%7==0)
{
System.out.println();
}
}
System.out.println();
}
}//参考借鉴宋佳丽程序思路框架;
以上是关于Java实验项目二打印万年历的主要内容,如果未能解决你的问题,请参考以下文章