用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

万年历

2017-12-20 作者: zyydfhlw举报

[java]代码库

    <span style="font-size:18px;">package com.sxt.test;  
      
    import java.util.Scanner;  
    //使用基础的java代码输出日历  
    public class CalendarTest1 {  
        public static void main(String[] args) {  
            Scanner s = new Scanner(System.in);  
            System.out.println("请输入年份");  
            int year = s.nextInt();  
            System.out.println("请输入一个月份");  
            int month = s.nextInt();  
            printCalendar(year, month);  
        }  
        /* 
         * 打印日历 
         */  
        private static void printCalendar(int year, int month) {  
            // 打印表头  
            System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");  
            // 打印数字  
            // 1,空格的数量  
            int kongGe = getKongGeCount(year, month);  
            // 输出空格  
            for (int i = 1; i <= kongGe; i++) {  
                System.out.print("\t");  
            }  
            // 解决当1~7日全为上一月的天数时出现的时间跳转问题  
            if (kongGe == 7) {  
                System.out.println();  
            }  
            // 输出数字  
            for (int i = 1; i <= getDaysOfMonth(year, month); i++) {  
                System.out.print(i + "\t");  
                if ((i + kongGe) % 7 == 0) {  
                    System.out.println();  
                }  
            }  
        }  
      
        // 获取空格的数量  
        private static int getKongGeCount(int year, int month) {  
            int count = getDaysOfAll(year, month) % 7 + 1;  
            return count;  
        }  
      
        // 所有的天数  
        private static int getDaysOfAll(int year, int month) {  
            // 整年的天数 + 整月的天数  
            int sum = 0;  
            // 1,整年的天数  
            for (int i = 1900; i < year; i++) {  
                sum += isLoopYear(i) ? 366 : 365;  
            }  
            // 2,整月的天数  
            for (int i = 1; i < month; i++) {  
                sum += getDaysOfMonth(year, i);  
            }  
      
            return sum;  
        }  
      
        /** 
         * 获取整月的天数 
         *  
         * @param year 
         * @param month 
         * @return 
         */  
        private static int getDaysOfMonth(int year, int month) {  
            int day = 0;  
            switch (month) {  
            case 1:  
            case 3:  
            case 5:  
            case 7:  
            case 8:  
            case 10:  
            case 12:  
                day = 31;  
                break;  
            case 4:  
            case 6:  
            case 9:  
            case 11:  
                day = 30;  
                break;  
            case 2:  
                day = isLoopYear(year) ? 29 : 28;  
                break;  
            }  
            return day;  
        }  
      
        // 判断是否是闰年  
        private static boolean isLoopYear(int year) {  
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {  
                return true;  
            } else {  
                return false;  
            }  
        }  
    }</span>  


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...