博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java-日历表
阅读量:7249 次
发布时间:2019-06-29

本文共 2777 字,大约阅读时间需要 9 分钟。

                  效果图

 

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;    }}

 

转载于:https://www.cnblogs.com/12kk/p/6100439.html

你可能感兴趣的文章
镜像仓库Harbor私服高可用策略分析及部署
查看>>
重写cnodejs学习整理
查看>>
从浏览器渲染的角度谈谈html标签的语义化
查看>>
文件权限及特殊权限管理SUID、SGID和Sticky
查看>>
iis 7 asp.net ajax post 请求字节过大报错问题解决办法
查看>>
高仿腾讯QQ即时通讯IM项目
查看>>
winform 中xml简单的创建和读取
查看>>
活动设计的“七宗罪”(转)
查看>>
如何在ChemDraw中输入℃温度符号
查看>>
SSH-Struts第二弹:一个Form提交两个Action
查看>>
词法分析
查看>>
Linux命令(二)
查看>>
Web登录验证之 Shiro
查看>>
LeeCode-Sort Colors
查看>>
Snort2.9.2.3 Installation on CentOS 6.2
查看>>
我的友情链接
查看>>
给软件工程师的自学建议
查看>>
Linux下SVN的备份方式
查看>>
hadoop 3.0.0 alpha1 分布式搭建
查看>>
刘宇凡:从吃饭中的道理领悟SEO
查看>>