java 万年历

来源:互联网 发布:网络专线费用协议 编辑:程序博客网 时间:2024/05/10 23:40
1、接收年份2、接收月份3、判断是否为闰年或平年(1)闰年条件:能被4整除并且不能被100整除,或能被400整除(2)闰年是366天,平年365天(3)闰年的2月份是29天,平年的2月份是28天4、月份的天数(1)每年的1、3、5、7、8、10、12月份都是31天(2)4、6、9、11月份都是30天5、1900年1月1日是星期一   2014 1 1之间相差多少年  累积多少天    年数相差天数   2014 8 1  之间相差多少天         月份相差天数   总天数累加   两个年份一共相差多少天      package huqing;import java.util.Calendar;public class Exercise0605 {    public static void main(String[] args) {        // TODO Auto-generated method stub        String str = test(2014, 7);        System.out.println(str);    }    private static String test(int year, int month) {        Calendar c = Calendar.getInstance();        c.set(Calendar.YEAR, year);        c.set(Calendar.MONTH, month - 1);        String str = "日\t一\t二\t三\t四\t五\t六\r";        int day = getDay(year, month - 1);        c.set(Calendar.DAY_OF_MONTH, 1);        str += getStartWeizhi(c);        for (int i = 2; i <= day; i++) {            c.set(Calendar.DAY_OF_MONTH, i);            if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {                str += i + "\r";            } else {                str += i + "\t";            }        }        return str;    }    //返回每月天数    private static int getDay(int year, int month) {        int[] DAYS = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };        if (month != 2) {            return DAYS[month];        }        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {            return 29;        }        return DAYS[month];    }    //获取是星期的第几天   前面留空格    private static String getStartWeizhi(Calendar c) {        int idx = c.get(Calendar.DAY_OF_WEEK);        StringBuffer buf = new StringBuffer();        for (int i = 0; i < idx - 1; i++) {            buf.append(" \t");        }        if (Calendar.SATURDAY == idx) {            buf.append(c.get(Calendar.DAY_OF_MONTH) + "\r");        } else {            buf.append(c.get(Calendar.DAY_OF_MONTH) + "\t");        }        return buf.toString();    }}


0 0
原创粉丝点击