zoukankan      html  css  js  c++  java
  • Java日历表

                      效果图    
    import java.util.*;
    import java.text.*;
    class demo 
    {
        public static void main(String[] args) 
        {
            //创建一个输入对象
            Scanner scan = new Scanner(System.in);
            //以1900-1-1为时间参考点
            String str = "1900-1-1";
            System.out.println("请输入年月(年-月):");
            //输入
            String str1 = scan.next();
            
            //拼接一个表示日的字符串+"-1"
           String str2 = str1 + "-1";
            
           //调用此方法,会返回一个总的天数      总天数 = 现在的时间(yyyy-mm-dd) - 参考时间(1900-1-1)
           long days = charge(str,str2);
            
           //总的天数对7取余+1,就得到每个月的1号是星期几
            long week = days%7+1;
            
           //截取字符串,会把输入的月份截取出来
            String str4 = str1.substring(5);
            
           //把截取出来的月份转换成int类型的数据
            int num = Integer.valueOf(str4); 
            
           //截取年份,用来判断是否是闰年
            String str5 = str1.substring(0,4);
            
           //把截取的年份转换成int类型的数据
            int num1 = Integer.valueOf(str5);
            
           //调用此方法会返回你输入的月份的天数
            int dayNum = number(num,num1);
            
           //用于打印日历表
            print(week,dayNum);
        }
    
        public static int number(int num,int num1){
            int day = 0;
            switch (num)
            {
            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:
                {
                    //判断是否为闰年
                    if ((num1%4 == 0 && num1%100 != 0) || num1 % 400 ==0)
                    {
                        day = 29;
                    }else {
                        day = 28;
                    }
                }
                break;
            }
            return day;
        }
        //打印日历表
        public static void print(long b,int c){
            System.out.println("星期一\t"+"星期二\t"+"星期三\t"+"星期四\t"+"星期五\t"+"星期六\t"+"星期日");
            for (int i = 1; i < b ; i++)
            {
                if (i % 7 == 0)
                {
                    System.out.println();
                }
                System.out.print("  *"+"\t");
            }
            int d=0;
            for (int i = (int)b ; i < c+(int)b ; i++ )
            {
                d++;
                if ((i-1) % 7 == 0 && i != 1)
                {
                    System.out.println();
                }
                System.out.print("  "+d+"\t");
            }
        }
        //计算两个时间差,返回天数
        public static long charge(String date1,String date2){
            //做时间差
            //将String转为Date做计算yyyy-mm-dd是格式
            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
           long charge = 0;
           try{
                Date d1 = sd.parse(date1);  
                Date d2 = sd.parse(date2);
                //时间也是以毫秒为单位。
                  charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60);
              }catch(ParseException e){
                System.out.println(e);
           }
             return charge;
        }
    }

  • 相关阅读:
    CommonJS, AMD 和 RequireJS之间的关系(转载)
    ansible 变量详解
    python3 进行字符串、日期、时间、时间戳相关转换
    Openresty 进行限流的方法
    Openresty 进行路由系统设计
    elasticsearch的监控脚本
    Python模块安装
    Openresty 操作Cookie
    Openresty 源码安装脚本
    Linux 下使用umount强行卸载设备
  • 原文地址:https://www.cnblogs.com/12kk/p/6100439.html
Copyright © 2011-2022 走看看