简单日历的制作

    xiaoxiao2023-02-02  24

    在家无聊突然想到写个日历玩玩,这里我用的最简单的方法做的一个日历查询,在JAVA控制台输出;

    需求:根据用户输入的年份和月查询出当月的日历;

    思路:1,你得知道每月的1号是这个月的星期几,;

        2,这个月是闰月还是平月;

        3,这个月是大月还是小月;

    先就这几个思路,细节在下面慢慢来讲解;

    先说几个公式:求润年 能被4整除并且不能被100整除或者能被400整除;

        求这个月的1号是这个月的星期几  1900年到这个月的1号的总天数去模上7 模出来是几,这个月的1号就是这个月的星期几;、

    最后做出来差不多就是下面这种形式:

    代码我用几部分显示出来:

    第一部分:在控制台接受用户的输入

    第二部分:根据用户输入的年和月查询出距1900年一共有多少天

    第三部分就是显示在控制台的判断(润平年和大小月)

    在代码外边套上一个while(){}就能实现用户一直查询日历了,其实很简单,就是几个判断和循环。

    下面是整个代码:

    import java.util.Scanner;public class Test06 {public static void main(String[] args) {while(true){int sum=0;Scanner in =new Scanner(System.in);System.out.println("\n"+"======日历======");System.out.println("请输入要查询的年份");int year=in.nextInt();System.out.println("请输入要查询的月份");int month=in.nextInt();for(int i=1900;i<year;i++){if(i%4==0 && i%100!=0 ||i%400==0){//sum=sum+366;sum+=366; }else{sum+=365;}}for(int 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;}}}sum+=1;int wekday=sum%7;System.out.println("日\t一\t二\t三\t四\t五\t六");for(int i=1;i<=wekday;i++){System.out.print("\t");}//判断润,平年if(month==2){if(year%4==0&&year%100!=0||year%400==0){for(int i=1;i<=29;i++){if(sum%7==6){System.out.print(i+"\n");}else{System.out.print(i+"\t");}sum++;}}else{for(int i=1;i<=28;i++){if(sum%7==6){System.out.print(i+"\n");}else{System.out.print(i+"\t");}sum++;}}continue;}//判断大小月if(month==4||month==6||month==9||month==11){for(int i=1;i<=30;i++){if(sum%7==6){System.out.print(i+"\n");}else{System.out.print(i+"\t");}sum++;}}else{for(int i=1;i<=31;i++){if(sum%7==6){System.out.print(i+"\n");}else{System.out.print(i+"\t");}sum++;}}System.out.println("\n"+"按任意键+enter键继续查询");System.out.println("退出请扣1");int endNum =in.nextInt();if(endNum==1){break;}}}}

    转载请注明原文地址: https://ju.6miu.com/read-1138597.html
    最新回复(0)