您的位置:首页 > 编程语言 > Java开发

Java的日历程序

2015-12-21 22:11 357 查看
本文为学习Java核心思想的笔记,特此说明。

package com;

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

public class MyCalendar {

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();
//获取月初所在星期的第一天的日历
int indent = 0;
while(weekday != firstDayOfWeek){
indent++;
d.add(Calendar.DAY_OF_MONTH, -1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}
//获取星期的缩写
String[] weekdayNames = new DateFormatSymbols().getShortWeekdays();

do{
System.out.printf("%4s ",weekdayNames[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{
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d",day);

if(day == today) System.out.print("* ");
else System.out.print("  ");

d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);

if(weekday == firstDayOfWeek) System.out.println();
}while(d.get(Calendar.MONTH) == month);

if(weekday != firstDayOfWeek) System.out.println();
}
}
效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: