一、实验目的
1、巩固并加强Java基础中循环、数组、对象的使用及逻辑能力的提高;
2、熟悉Java代码的编写规范;
二、实验内容
1、搭建Java编译环境;
2、编写程序实现计算某一年第一天星期几;
3、编写程序实现计算某一年是否为闰年,某一月有多少天;
4、使用循环正确打印一年中的月份及每月日期;
5、学会使用函数解决问题
6、调试运行程序。
import java.util.*;
public class 万年历 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("===============欢迎使用Java万年历===============");
System.out.println("==================请选择功能====================");
System.out.println("==================0为查询日历====================");
System.out.println("==================1为结束操作====================");
int po=0;
int nian;
int yue;
int tianshu;
int xingqishu;
int caozuo=0;
while(po==0) {
System.out.println("请选择您需要的功能:");
caozuo=sc.nextInt();
if(caozuo!=0 && caozuo!=1) {
System.out.println("==================选择功能错误==================");
}else {
//使用“switch”语句进行判断选择需要的功能
switch (caozuo) {
case 0:
System.out.println("===============Java万年历================");
System.out.print("请输入年份:");
nian=sc.nextInt();
System.out.print("请输入月份:");
yue=sc.nextInt();
if(nian<1 || yue<1 || yue>12) {
System.out.println("===============输入错误信息================");
}else {
System.out.println("==============="+nian+"年"+yue+"月"+"================");
Tian tian = new Tian(nian,yue);
tianshu = tian.jisuantian();
XingQi xingqi=new XingQi(tianshu);
xingqishu=xingqi.getXinQi();
Print print = new Print(xingqishu,nian,yue);
print.SuanTian();
print.Shuchu();
//通过对月份的判断,输出本月的重要节日
if(yue==1) {
System.out.println("本月一号为元旦节");
}else if(yue==3) {
System.out.println("本月八号为妇女节");
}
else if(yue==5) {
System.out.println("本月一号为劳动节");
}
else if(yue==6) {
System.out.println("本月一号为儿童节");
}
else if(yue==7) {
System.out.println("本月一号为建党节");
}
else if(yue==8) {
System.out.println("本月一号为建军节");
}
else if(yue==9) {
System.out.println("本月十号为教师节");
}
else if(yue==10) {
System.out.println("本月一号为国庆节");
}
}
break;
case 1:
System.out.println("操作结束,欢迎下次使用");
po=1;
}
}
if(po==1) {
break;
}
}
}
}
//创建计算天数的类
class Tian{
public int nian;
public int yue;
public int yTian;
public int tian;
public int i=0;
//无参构造方法
public Tian() {
}
//两参构造方法(传入要查询的年,月)
public Tian(int nian,int yue) {
this.nian=nian;
this.yue=yue;
}
//计算出一年一月一日到查询月的天数
public int jisuantian() {
for(i=1;i<this.nian;i++) {
if(i%4==0 && i%100!=0) {
this.tian=this.tian+366;
}else if(i%400==0) {
this.tian=this.tian+366;
}else {
this.tian=this.tian+365;
}
}
for(i=1;i<yue;i++) {
if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12) {
this.tian=this.tian+31;
}else if(i==4 || i==6 || i==9 || i==11) {
this.tian=this.tian+30;
}else if(i==2) {
if(i%4==0 && i%100!=0) {
this.tian=this.tian+29;
}else if(i%400==0) {
this.tian=this.tian+29;
}else {
this.tian=this.tian+28;
}
}
}
this.tian=this.tian+1;
return this.tian;
}
}
//创建类计算查询月的第一天为星期几
class XingQi{
public int xingqi;
//无参构造方法
public XingQi() {
}
//通过有参构造方法将计算出来的天数传入
//通过对传进的参数求余得出星期数
public XingQi(int tian) {
this.xingqi=tian%7;
}
//返回星期数
public int getXinQi() {
return this.xingqi;
}
}
//创建类将相关信息打印出来
class Print{
public int xingqi;
public int nian;
public int yue;
public int tian;
int i=0;
int u=0;
int p=1;
//无参构造方法
public Print(){
}
//三参构造方法,将星期数,年,月传入
public Print(int xingqi,int nian,int yue){
this.xingqi=xingqi;
this.nian=nian;
this.yue=yue;
}
//通过判断语句判断出出对应月份的天数
public void SuanTian() {
if(this.yue==1 || this.yue==3 || this.yue==5 || this.yue==7 || this.yue==8 || this.yue==10 || this.yue==12) {
this.tian=31;
}else if(this.yue==4 || this.yue==6 || this.yue==9 || this.yue==11) {
this.tian=30;
}else if(this.yue==2) {
if(this.nian%4==0 && this.nian%100!=0) {
this.tian=29;
}else if(this.nian%400==0) {
this.tian=29;
}else {
this.tian=28;
}
}
}
//输出对应日历格式
public void Shuchu(){
System.out.println("======================================");
System.out.println(" "+"日"+" "+"一"+" "+"二"+" "+"三"+" "+"四"+" "+"五"+" "+"六");
for(i=1;i<=this.tian;i++) {
if(i==1) {
for(u=1;u<=this.xingqi;u++) {
System.out.print(" ");
p++;
}
}
if(i<10) {
System.out.print(" "+i);
}else {
System.out.print(" "+i);
}
if(p==7) {
System.out.print("\n");
p=0;
}
p++;
}
System.out.println("\n");
}
}
今天的文章Java万年历设计分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/31040.html