也许你用VB可以拖拽出一个漂亮的日历程序,但你是否觉得这样拖来拖去一点也没有技术含量那?你是否知道日历程序的基本原理那?我想用一个JAVA程序解释一下它的基本原理,这里只是输出到控制台,不过我想只要知道了它的工作原理,你也可以用SWING做出一个漂亮的界面:
/*
日历程序
*/
package calendartest;
//导入日期包
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalendarTest {
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);
System.out.println("Sun Mon Tue Wed Thu Fri Sat");
//未到当天星期数,则打印空格
for(int i=Calendar.SUNDAY;i<weekday;i++){
System.out.print(" ");
}
do{
//输出日期,从1号开始记数
int day=d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d",day);
//如果为今天,则在前面打印*
if(day==today)
System.out.print("*");
else
System.out.print(" ");
if(weekday==Calendar.SATURDAY)
System.out.println();
d.add(Calendar.DAY_OF_MONTH, 1);//输出后,日期加一
weekday=d.get(Calendar.DAY_OF_WEEK);//再获取改变后日期的星期数
}
while(d.get(Calendar.MONTH)==month);//只要是当前月,则继续循环
if(weekday!=Calendar.SUNDAY)
System.out.println();
}
}