读书人

Java台历可根据年月获取当前月日历

发布时间: 2012-07-23 09:42:19 作者: rapoo

Java日历,可根据年月获取当前月日历

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/** * * 根据年、月获取当前月日历 * @author 任伟刚 * @email 475609041@qq.com * */public class CalendarTools {    public static void drawCalendar(Date date) {               Calendar cal  = Calendar.getInstance();        cal.setTime(date);        int year = cal.get(Calendar.YEAR);        int month2 = cal.get(Calendar.MONTH)+1; //Calendar里取出来的month比实际的月份少1,所以要加上        // 期望的日历对象        GregorianCalendar d = new GregorianCalendar(year, month2, 0);        // 当前的日历对象        GregorianCalendar gc = new GregorianCalendar();        int today = gc.get(java.util.Calendar.DAY_OF_MONTH);// 得到当前的日期        int monthToday = gc.get(java.util.Calendar.MONTH)+1;// 得到当前的月份        int month = d.get(java.util.Calendar.MONTH)+1;// 得到期望日期的月份        // 给期望日期设置一个月的第一天        d.set(java.util.Calendar.DAY_OF_MONTH, 1);        // 获得期望月份的第一天是一周中的第几天        int weekday = d.get(java.util.Calendar.DAY_OF_WEEK);        // 打印日历头        System.out.println("Mon\tTue\tWed\tFou\tFri\tSat\tSun");        // 制作日历第一行的缩进        for (int i = java.util.Calendar.SUNDAY; i < weekday; i++) {            System.out.print("\t");        }        do {            // 打印日子            int day = d.get(java.util.Calendar.DAY_OF_MONTH);            System.out.printf("%3d", day);            // 用*号标记当天日期            if (day == today && month == monthToday) {                System.out.print("*\t");            } else {                System.out.print("\t");            }            // 每当周六另起一行            if (weekday == java.util.Calendar.SATURDAY) {                System.out.println();            }            // 增加一天得到第二天            d.add(java.util.Calendar.DAY_OF_MONTH, 1);            // 重新获得改天在一周中的位置            weekday = d.get(java.util.Calendar.DAY_OF_WEEK);        } while (d.get(java.util.Calendar.MONTH)+1 == month);    }    public static void main(String[] args) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        Calendar c = Calendar.getInstance();          try {            c.setTime(sdf.parse("2012-7-1"));            drawCalendar(c.getTime());        } catch (ParseException e) {            e.printStackTrace();        }    }}
? 1 楼 kookse 2012-06-14 还是有点意思的

读书人网 >Web前端

热点推荐