万年历
程序代码:
import java.util.Scanner;
public class Panduan1{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
String shifou;
int nian,yue,yuann,xinq;
int zong=0,nianz=0,count=0,tian=0,yuez=0;
do{
zong=0,nianz=0,count=0,tian=0;
yuez=0; //进行下一次循环时注意给变量清零!
System.out.println("************************欢迎使用万年历************************\n\n\n");
System.out.println("请选择年份:\n\n");
nian=input.nextInt();
System.out.println("请选择月份:\n\n");
yue=input.nextInt();
if(nian%4==0&&nian%100!=0||nian%400==0){
System.out.println(nian+"\t\t闰年");
}else{
System.out.println(nian+"\t\t平年");
}
switch(yue){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
tian=31;
System.out.println(yue+"\t\t共"+tian+"天");
break;
case 2:
if(nian%4==0&&nian%100!=0||nian%400==0){
tian=29;
System.out.println(yue+"\t\t闰年"+tian+"天");
}else{
tian=28;
System.out.println(yue+"\t\t平年"+tian+"天");
}
break;
case 4:
case 6:
case 9:
case 11:
tian=30;
System.out.println(yue+"\t\t共"+tian+"天");
break;
default:
System.out.println("您的月份输入有错!请重新输入。");
yue=input.nextInt();
break;
}
//计算年天
for(yuann=1900;yuann<nian;yuann++){
if(yuann%4==0&&yuann%100!=0||yuann%400==0){
nianz=nianz+366;
}else{
nianz=nianz+365;
}
}
//计算月天
for(int yu=1;yu<yue;yu++){
if(yu==1||yu==3||yu==5||yu==7||yu==8||yu==10||yu==12){
yuez=yuez+31;
}else if(yu==2){
if(nian%4==0&&nian%100!=0||nian%400==0){
yuez=yuez+29;
}else{
yuez=yuez+28;
}
}else if(yu==4||yu==6||yu==9||yu==11){
yuez=yuez+30;
}else{
break;
}
}
//总差天
zong=yuez+nianz;
System.out.println("距离1900年的总天数是:\t"+zong);
//月份第一天星期:
xinq=1+zong%7;
System.out.println("星期日\t"+"星期一\t"+"星期二\t"+"星期三\t"+"星期四\t"+"星期五\t"+"星期六\t");
//显示月份表
switch(xinq){
case 0:
while(count<tian){
count++;
System.out.print(count+"\t");
if(count%7==0){
System.out.println();
}
}
break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
for(int f=1;f<=xinq;f++){
System.out.print("\t");
}
while(count<tian){
count++;
System.out.print(count+"\t");
if(count+xinq==7){
System.out.println();
}else if((count%7==7-xinq)){
System.out.println();
}
}
break;
default:
System.out.println("您的算法有错!");
break;
}
System.out.println("是否继续查询y/n:");
shifou=input.next();
if(shifou.equals("y")){
continue;
}if(shifou.equals("n")){
break;
}else{
System.out.println("您的月份输入有错!请重新输入。");
shifou=input.next();
}
}while(shifou.equals("y"));
System.out.println("程序结束!");
}
}
public class Panduan1{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
String shifou;
int nian,yue,yuann,xinq;
int zong=0,nianz=0,count=0,tian=0,yuez=0;
do{
zong=0,nianz=0,count=0,tian=0;
yuez=0; //进行下一次循环时注意给变量清零!
System.out.println("************************欢迎使用万年历************************\n\n\n");
System.out.println("请选择年份:\n\n");
nian=input.nextInt();
System.out.println("请选择月份:\n\n");
yue=input.nextInt();
if(nian%4==0&&nian%100!=0||nian%400==0){
System.out.println(nian+"\t\t闰年");
}else{
System.out.println(nian+"\t\t平年");
}
switch(yue){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
tian=31;
System.out.println(yue+"\t\t共"+tian+"天");
break;
case 2:
if(nian%4==0&&nian%100!=0||nian%400==0){
tian=29;
System.out.println(yue+"\t\t闰年"+tian+"天");
}else{
tian=28;
System.out.println(yue+"\t\t平年"+tian+"天");
}
break;
case 4:
case 6:
case 9:
case 11:
tian=30;
System.out.println(yue+"\t\t共"+tian+"天");
break;
default:
System.out.println("您的月份输入有错!请重新输入。");
yue=input.nextInt();
break;
}
//计算年天
for(yuann=1900;yuann<nian;yuann++){
if(yuann%4==0&&yuann%100!=0||yuann%400==0){
nianz=nianz+366;
}else{
nianz=nianz+365;
}
}
//计算月天
for(int yu=1;yu<yue;yu++){
if(yu==1||yu==3||yu==5||yu==7||yu==8||yu==10||yu==12){
yuez=yuez+31;
}else if(yu==2){
if(nian%4==0&&nian%100!=0||nian%400==0){
yuez=yuez+29;
}else{
yuez=yuez+28;
}
}else if(yu==4||yu==6||yu==9||yu==11){
yuez=yuez+30;
}else{
break;
}
}
//总差天
zong=yuez+nianz;
System.out.println("距离1900年的总天数是:\t"+zong);
//月份第一天星期:
xinq=1+zong%7;
System.out.println("星期日\t"+"星期一\t"+"星期二\t"+"星期三\t"+"星期四\t"+"星期五\t"+"星期六\t");
//显示月份表
switch(xinq){
case 0:
while(count<tian){
count++;
System.out.print(count+"\t");
if(count%7==0){
System.out.println();
}
}
break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
for(int f=1;f<=xinq;f++){
System.out.print("\t");
}
while(count<tian){
count++;
System.out.print(count+"\t");
if(count+xinq==7){
System.out.println();
}else if((count%7==7-xinq)){
System.out.println();
}
}
break;
default:
System.out.println("您的算法有错!");
break;
}
System.out.println("是否继续查询y/n:");
shifou=input.next();
if(shifou.equals("y")){
continue;
}if(shifou.equals("n")){
break;
}else{
System.out.println("您的月份输入有错!请重新输入。");
shifou=input.next();
}
}while(shifou.equals("y"));
System.out.println("程序结束!");
}
}
免费内容:
这是我自己的作品,可以查看1900以后的年月或星期。并判断是闰年与平年,还可以计算至1900的天数。
希望各位朋友发表一些宝贵的意见?
共同来学习与提升我的作品的功能。
最后感谢各位好友能抽出宝贵的时间来赐教。
搜索更多相关的解决方案:
万年历
----------------解决方案--------------------------------------------------------