→阿童沐

財富==支撐一個人生存多長時間的能力!

导航

CoreJava中日历代码=

package chapterfour;

import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

public class CalendarTest
{
public static void main(String[] args)
{
Locale.setDefault(Locale.US); //设置地去

Calendar d = new GregorianCalendar();
int today = d.get(Calendar.DAY_OF_MONTH); // 获取今天
int month = d.get(Calendar.MONTH); // 获取当前月

d.set(Calendar.DAY_OF_MONTH, 1);
int firstDayOfThisMonth = d.get(Calendar.DAY_OF_WEEK); // 本月第一天
int firstDayOfWeek = d.getFirstDayOfWeek(); // 获取一周的第一天表示

// 找到一个月的第一天和一周第一天之间的空白之处
int tag = 0;
while (firstDayOfThisMonth != firstDayOfWeek)
{
tag++;
d.add(Calendar.DAY_OF_MONTH, -1);
firstDayOfThisMonth = d.get(Calendar.DAY_OF_WEEK);
}

System.out.println(firstDayOfThisMonth == firstDayOfWeek);

// 打印一个月的头部
String[] variousWeekdays = new DateFormatSymbols().getShortWeekdays();
do
{
System.out.printf("%4s", variousWeekdays[firstDayOfThisMonth]);
d.add(Calendar.DAY_OF_MONTH, 1);
firstDayOfThisMonth = d.get(Calendar.DAY_OF_WEEK);
}
while (firstDayOfThisMonth != firstDayOfWeek);
System.out.println();

//打印一个月第一天之前的空白天数
for (int i=0; i<tag; i++)
{
System.out.print(" ");
}

//开始打印
d.set(Calendar.DAY_OF_MONTH, 1);
while (month == d.get(Calendar.MONTH))
{
int currentDay = d.get(Calendar.DAY_OF_MONTH);

if (currentDay == today)
{
System.out.printf("%3d", currentDay);
System.out.print("*");
}
else
{
System.out.printf("%4d", currentDay);
}

d.add(Calendar.DAY_OF_MONTH, 1);
firstDayOfThisMonth = d.get(Calendar.DAY_OF_WEEK);
if (firstDayOfThisMonth == firstDayOfWeek)
{
System.out.println();
}
}

}
}

输出:



 

posted on 2012-03-10 00:26  阿童沐  阅读(232)  评论(0)    收藏  举报