zoukankan      html  css  js  c++  java
  • 简单日历的两种方法

    方法一:

    import java.util.Calendar;
    
    import java.util.Scanner;
    
     class Demo {
    
        public static void main(String[] args) {
    
            Scanner scan = new Scanner(System.in);
    
            System.out.print("请输入年份:");
    
            int year = scan.nextInt();
    
            System.out.print("请输入月份:");
    
            int month = scan.nextInt();
    
            System.out.println("
    
    		"+year + "年" + month + "月
    
    ");
    
            System.out.println("周日	周一	周二	周三	周四	周五	周六");
    
            Calendar c = Calendar.getInstance();
    
     
            c.set(year, month-1, 1);
    
            int weekday = c.get(Calendar.DAY_OF_WEEK);
    
        
    
            int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
    
            int temp = 0;
    
    
            for (int i = 1; i < weekday; i++){
    
                System.out.print("*	");
    
                temp++;
    
            }
    
    
            for (int i = 1; i <= maxDay; i++){
    
                System.out.print(i + "	");
                temp++;
                if (temp%7 == 0){
                        System.out.println();
                }
    
            }
    
        }
    
    } 

     

    方法二:

    public class Demo4 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            Demo4 demo = new Demo4();
            demo.show(1900,1);
    
        }
        
        //定义一个工具方法:判断平年还是闰年
        public boolean isLeapYear(int year){
            
            if(year % 400 == 0 || (year % 4==0 && year % 100 != 0)){
                
                return true;
            }
            
           return false;
        }
        
        //计算输入年份下,月份的总天数 1900
        
        public int getTotalDateFrom(int year , int month){
            
            //1.定年份的总天数
            int totalDate = 0;//1900到你输入的年份的总天数 2016   1900 - 1903 = 3
            for(int i= 1900 ; i < year ;i++){
                
                if(isLeapYear(i)){ // 闰年
                
                    totalDate += 366;
                }else {
                    
                    totalDate += 365;
                }
            }
            
            //2.计算月份的天数
            for(int i = 1 ; i< month ;i++){
                
                totalDate += getDayOfMonth(year, i);
            }
            
            return  totalDate;
            
        }
        
        
        
        public int getDayOfMonth(int year , int month){
            
            switch (month) {
            case 1:    
            case 3:    
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                    
                return 31;
    
            case 4:    
            case 6:    
            case 9:
            case 11:
                 return 30;
            case 2:
                if(isLeapYear(year)){
                    
                    return 29;
                }else {
                    
                    return 28;
                }
            default:
                return 30;
            }
        }
        
        public int printSpace(int year , int month){
            
            return getTotalDateFrom(year, month) % 7;
        }
        
        public void print(int year , int month){
            
            int countSpac =  printSpace(year, month) + 1; // 空格的个数
            int count = 0; //定义一个计数
            for(int i = 1; i<=countSpac; i++){
                count++;
                System.out.print("	");
            }
            
            //2.打印日期
            for(int i = 1 ; i<=getDayOfMonth(year, month);i++){
                
                if(count % 7 == 0){
                    
                    System.out.println();
                }
                count++;
                System.out.print(i+"	");
                
            }
            
        }
        
        public  void show(int year , int month){
            
            System.out.println("******************"+year+"****"+month+"***************");
            System.out.println("======================================================");
            System.out.println("日	一	二	三	四	五	六");
            System.out.println("======================================================");
            print(year, month);
            System.out.println();
        }
        
    
    }



     

  • 相关阅读:
    Django----抽屉项目 笔记
    Django验证码【附源码】
    C语言--循环控制结构
    javascript 流程控制及函数
    yield和yield from
    python面试题(转)
    断言assert用法
    javascript基本语法
    python经典一百道习题(转自奶酪博客)
    functools模块中的函数
  • 原文地址:https://www.cnblogs.com/binzhihua-666/p/6103609.html
Copyright © 2011-2022 走看看