java 用 Calendar类写万年历

来源:互联网 发布:无网络的手机txt阅读器 编辑:程序博客网 时间:2024/05/29 02:58

输入年份和日期打印出本年本月份的日历,如图:

这里写图片描述

本题主要用到了java的 Calender类。

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected。

这里写图片描述

简单的小实例:

public static void main(String[] args) {        Calendar nowc = Calendar.getInstance();        System.out.println(nowc.get(Calendar.YEAR));//年份        System.out.println(nowc.get(Calendar.MONTH));//一年的第几个月,从0开始        System.out.println(nowc.get(Calendar.DAY_OF_MONTH));//这个月份的第几天,从1开始        System.out.println(nowc.get(Calendar.DAY_OF_WEEK));//这个月份的第几个星期,从0开始    }

运行结果(当天日期:2016-5-16)

这里写图片描述

判断是否为闰年,判断该月份的天数

public static int Days(int year,int month)    {        int days=0;        if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)        {            days = 31;        }        else if(month==4||month==6||month==9||month==11)        {            days = 30;        }        else        {            if(year%4==0||year%400==0&&year%100!=0)            {                days = 28;            }            else            {                days = 29;            }        }        return days;    }

得到月份天数后,打印出本月份的万年历

Scanner sc  = new Scanner(System.in);        Calendar nowc = Calendar.getInstance();        System.out.println("请输入年份");        int year = sc.nextInt();        System.out.println("请输入月份");        int month = sc.nextInt();        int days = Days(year,month);        nowc.set(year,month-1,1);        int week = nowc.get(Calendar.DAY_OF_WEEK)-1;        int[] wnl = new int[42];        for(int i=1;i<=days;i++)        {            wnl[week++]=i;        }        System.out.println("日\t一\t二\t三\t四\t五\t六");        for(int i=0;i<week;i++)        {            if(wnl[i]!= 0)            {                System.out.print(wnl[i]+"\t");                if((i+1)%7==0)                {                    System.out.println("");                }            }            else            {                System.out.print(" "+"\t");            }        }    }
0 0
原创粉丝点击