A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1900 中级黑马   /  2016-2-3 14:24  /  941 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天在家写了一个简单的日历,根据用户输入的年份和月份打印出相应的日历,用到的知识主是前五天的,这个并不太难,主要是For循环和if条件判断以及  if else嵌套的使用。下面是代码:



package com.heima.For;

/*
* 日历制作
*         相应知识点
*                 1:键盘录入,Scanner
*                 2:逻辑运算符
*                 3:For循环
*                 4:if条件判断和if else嵌套
*
* 注释的比较少,但我觉得都是些需要注释的地方。
* 注释就相当于思路, 哈哈哈哈。大神请轻喷!{:2_36:}
* */
import java.util.Scanner;
public class Demo_Calendar {
        public static void main (String [] args ){
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入年份");
                int year = sc.nextInt();
                System.out.println("请输入月份");
                int month = sc.nextInt();
                int sum=0;                                                        //定义一个sum用来计算用户输入年份的总天数,
                for(int i=1; i<year; i++){
                        if(i%4==0&&i%100!=0||i%400==0){                        //判断用户输入年份是端年还是平年。端年366,平年356,可以看一下判断公式。
                                sum+=366;
                        }
                        else {
                                sum+=365;
                        }
                }
                for (int i=1; i<month; i++){                //i在For循环内,为局部变量,可以重复使用。
                        if (i==2) {
                                if (year%4==0&&year%100!=0||year%400==0){                //判断端平年的2月,平年28天,端年29天。
                                        sum+=29;
                                }
                                else {
                                        sum+=28;
                                }
                        }       
                       
                        else if(i==4||i==6||i==9||i==11){                                //判断除2月以外的月份中的大小月,大月31天,小月30天。
                                        sum+=30;
                        }
                        else{
                                sum+=31;
                        }
                               
                }
               
                sum+=1;
                int week =sum%7;                //判断星期,判断某天是星期几,就对7进行取%,余多少就是星期几。
                System.out.println("日\t一\t二\t三\t四\t五\t六");                //通过控制\t,输出我们想要的星期格式。
                for (int i=1; i<=week; i++){
                        System.out.print("\t");                //再次控制\t,使具体的天数出现在相应的星期下面
                }
               
                //再次对2月是否属于平年和端年以及大小月进行判断,
                int days=0;
                if (month==2) {
                        if (year%4==0&&year%100!=0||year%400==0){
                                days=29;
                        }
                        else {
                                days=28;
                        }
                }
                else{
                        if(month==4||month==6||month==9||month==11){
                                days+=30;
                        }
                        else{
                                days+=31;
                        }
                }
                for(int i=1; i<=days; i++){
                        if (sum%7==6){                //判断是否为星期六,如果是星期六,我们就输出相应的数字并且执行换行操作;
                                System.out.print(i+"\n");
                        }
                        else {                                //如果不是星期六,我们就输出相应的数字并且执行\t操作;主要是为了输出样式更好看,没有\t就会显得很拥挤,这和九九乘法表是一样的。
                                System.out.print(i+"\t");
                        }
                        sum++;                //因为i每循环一次,天数就增加一天,所以总天数sum也要增加。
                       
                }
                System.out.print("\n");                        //这两行可有可无,只是这样不会太拥挤,好看点。
                System.out.print("\n");
                System.out.println("这是"+ year+"年"+month+"月"+"的日历");
               
        }

}

捕获2.JPG (23.43 KB, 下载次数: 12)

检验一下

检验一下

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

3 个回复

倒序浏览
挺不错,赞~
回复 使用道具 举报
厉害。。。。
回复 使用道具 举报
加油。。。。come on
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马