import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* @version 1.1
* @author PC
*
*/
public class Welcome {
public static void main(String[] args){
GregorianCalendar 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 weekday = d.get(Calendar.DAY_OF_WEEK);
//int firstDayOfWeek = d.getFirstDayOfWeek(); //源代码
d.setFirstDayOfWeek(Calendar.MONDAY);
int firstDayOfWeek = d.getFirstDayOfWeek();
//determine the required indentation for the first line
int indent = 0;
while (weekday != firstDayOfWeek){
indent++;
d.add(Calendar.DAY_OF_MONTH,-1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}
//print weekday name
String[] weekdayName = new DateFormatSymbols().getShortWeekdays();
do{
System.out.printf("%6s",weekdayName[weekday]);
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}
while (weekday!=firstDayOfWeek);
System.out.println();
for (int i=1; i<=indent; i++)
System.out.print(" ");
d.set(Calendar.DAY_OF_MONTH, 1);
do{
//print day
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d",day);
//make current day with *
if(day==today)
System.out.print("* ");
else System.out.print(" ");
//advance d to the next day
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
//start a new line
if(weekday == firstDayOfWeek)
System.out.println();
}
while(d.get(Calendar.MONTH)==month);
//print final end of line if necessary
if(weekday!=firstDayOfWeek)
System.out.println();
}
}
java 核心技术 日历代码
最新推荐文章于 2024-08-06 17:29:46 发布