这篇文章给大家分享的是有关java如何制作万年历的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
完成万年历的制作需要用到数组、循环等知识。
编程计算输入的月份距离1900年1月1日的天数,求出当前月之前的总天数(不包含当前输入月分的天数,)
编程计算输入月份的第一天是星期几,(公式:星期几=1+天数差%7)。
import java.util.Scanner;
public class Calendar{
public static void main(String[] args){
int year;
int month;
int totaldays=0;
Scanner sc=new Scanner(System.in);
System.out.println("请输入年");
year=sc.nextInt();
System.out.println("请输入月");
month=sc.nextInt();
//计算年的总天数
for(int i=1900;i<year;i++){
if((i%400==0)||(i%4==0&&i%100!=0)){
totaldays+=366;
}else{
totaldays+=365;
}
}
//距离1900年1月1好的总天数
totaldays+=monthdays(month,year);
//System.out.println(totaldays);
System.out.println("-------------"+year+"年"+month+"月日历为---------------");
//开头
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
//该月第一天是星期几,星期几前面就空几格
int x=1+totaldays%7;
if(x==7){
x=0;
}
for(int i=0;i<x;i++){
System.out.print(" \t");
}
int days=monthday(month,year);
int i=1;
while(i<=days){
System.out.print(i+" \t");
if((i+x)%7==0){
System.out.println();
}
i++;
}
}
//月份总天数
public static int monthdays(int month,int year){
int totaldays=0;
for(int i=1;i<month;i++){
totaldays+=monthday(i,year);
}
return totaldays;
}
//某月天数
public static int monthday(int month,int year){
if((year%400==0)||(year%4==0&&year%100!=0)){
int[] arr={0,31,29,31,30,31,30,31,31,30,31,30,31};
return arr[month];
}else{
int[] arr={0,31,28,31,30,31,30,31,31,30,31,30,31};
return arr[month];
}
}
}
感谢各位的阅读!关于“java如何制作万年历”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。