学习编程第二周

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习编程第二周相关的知识,希望对你有一定的参考价值。

今天花了2个多小时不断了改进,终于将一个日历的小程序做出来了,主要的内容还是利用循环和判断语句来完成的,视频和书的进程不一样,越看到书后面的内容越觉得自己现在编写的东西很麻烦,可能后面可以利用一些简单的语句来完成一些小的程序,现在奉献上刚完成的日历程序。

import java.util.Scanner;
public class test2 {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        System.out.println("请输入年份:");
        int year=in.nextInt();
        System.out.println("请输入月份:");
        int month=in.nextInt();
        int sum=0;
        int day=0;
        for(int i=1900;i<year;i++){
            if(i%4==0&&i%100!=0||i%400==0){
                sum=366+sum;
            }else{
                sum=365+sum;
            }
        }
        for(int i=1;i<month;i++){
            if(i==2){
                if(year%4==0&&year%100!=0||year%400==0){
                    sum=29+sum;
                }else{
                    sum=28+sum;
                }       
            }else{
                if(i==4||i==6||i==9||i==11){
                    sum=30+sum;
                }else {
                    sum=31+sum;
                }
            }   
        }
        if(month==2){
            if(year%4==0&&year%100!=0||year%400==0){
                day=29;
            }else{
                day=28;
            }           
        }else{
            if(month==4||month==6||month==9||month==11){
                day=30;
            }else {
                day=31;
            }
        }
        System.out.println(month+"月有"+day+"天");
        System.out.println(sum%7);

        System.out.println("日\t一\t二\t三\t四\t五\t六");
        for(int i=1;i<=(sum+1)%7;i++){//sum%7求余是上个月最后一天,这个月第一天需要+1,同时%优先于+,所以需要先将+扩起来才可以表达正常
            System.out.print("\t");
        }
        for(int i=1;i<=day;i++){
            if((sum+i)%7>=6){
                System.out.print(i+"\n");
            }else{
                System.out.print(i+"\t");
            }
        }
    }
}

这个程序主要由3部分构成:1、输入年月然后计算出输入的年月与1900年1月1日之间相差多少天,来确定输入月份之前一个月的最后一天是星期几;2、就是判断润年和区别大小月;3、就是输出问题,输出问题我改了好多次后才确定最后这个方式能够显示的。

最后想多说两句,在整个编写过程中,发现了几个很容易犯错的地方,需要提醒自己留意的,1、大括号,小括号这些一一对应的符号一定要成双成对编写,且编写好后不能轻易删除和改动位置,因为一个小错误,我找了快半个小时,重复的看了又看;2、一定要根据编写规范严格规范自己的程序编写,不然的话找错都很麻烦,现在我还没有完全按照编程规范来编写,所以导致有些错误找出来要很久;3、原来windows的日历最开始的时间也是1900年1月1日,具体是为什么呢?我也不太清楚,可能这天刚好就是周一吧。

以上是关于学习编程第二周的主要内容,如果未能解决你的问题,请参考以下文章

第二周学习进度表

学习Java第二周

第二周学习进度

第二周学习进度

20172316 结对编程-四则运算 第二周 阶段总结

第二周进度条