码迷,mamicode.com
首页 > 其他好文 > 详细

学习编程第二周

时间:2016-10-26 00:14:06      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:ret   ext   大括号   class   需要   mon   comment   ++   编写   

今天花了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日,具体是为什么呢?我也不太清楚,可能这天刚好就是周一吧。

学习编程第二周

标签:ret   ext   大括号   class   需要   mon   comment   ++   编写   

原文地址:http://www.cnblogs.com/eleven11th/p/5998592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!