本次实验在于测试日期类的一些方法的使用,通常我们会使用Calendar调用getInstance()方法创建对象, 这里也可以使用Calendar的子类 GregorianCalendar类去创建,在这里,模拟实现了,通过运行该代码段,就 能知道今天是几月的几号的星期几了,不多说啦,直接上代码... import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.GregorianCalendar;//import java.util.Locale;//import java.text.DateFormatSymbols;/** * 测试用于模拟手机日历,该程序用于———显示当前月的日历 * * @author YYCat * */public class TestImitateCalendar { public static void main(String[] args){ //// Locale.setDefault(Locale.CHINESE); GregorianCalendar calendar = new GregorianCalendar(); //创建格里高利日历对象 /** * 输出样例eg:2015年7月 */ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月"); System.out.println(" " + sdf.format(calendar.getTime())); /** * 获得当前月、日 */ int month = calendar.get(Calendar.MONTH) + 1; int today = calendar.get(Calendar.DAY_OF_MONTH); //获得今天是在这个月的第几天 /** * 注: * 打印今天是星期几?的时候注意地区差异 * System.out.println(day=1?7:day-1); */// int w = calendar.get(Calendar.DAY_OF_WEEK)-1; // int weekday = calendar.get(Calendar.DAY_OF_WEEK) -1; //表示这一天为星期几//System.out.println("month: " + month);//System.out.println("today: " + today); /** * 返回到本月到第一天,并得到这一天为星期几。 * * 获得这个月的第一天在该月中是星期几,便于计算空格 */ calendar.set(Calendar.DAY_OF_MONTH, 1); int weekday = calendar.get(Calendar.DAY_OF_WEEK); //today = calendar.get(Calendar.DAY_OF_MONTH);//System.out.println("today:" + today); int firstdayOfWeek = calendar.getFirstDayOfWeek();//System.out.println("weekday: " + weekday);//System.out.println("firstdayOfWeek:" + firstdayOfWeek); /** * 以下功能实现 */ int indent = 0; //该标示用于表示:本月的一天前的空位,准确定位到具体的那个星期上 /** * 当本月的第一天不为星期天 时,则 * 移动计算该天距第一天的位置 */ while(firstdayOfWeek!=weekday){ indent++; calendar.add(Calendar.DAY_OF_MONTH, -1); // /* today = calendar.get(Calendar.DAY_OF_MONTH); System.out.println("today:" + today); 居然是30 29 28... */ weekday = calendar.get(Calendar.DAY_OF_WEEK); //老是忘掉了减一....目的是将这一天向前移动一天 }//System.out.println(indent); //定义一个现实星期的数组 String[] week = {"日","一", "二", "三", "四", "五", "六"}; for(int i=0; i
参考自java Core,接下来我将会把实现模拟时钟功能的代码段继续奉献给大家 |