Java实现可视化日历程序

效果:

174532261.jpg

代码如下:

package com.zyx.date;


import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.Scanner;


/**

* 可视化日历程序

* @author lenovo

*

*/

public class VisualCalendar {


public static void main(String[] args) {

System.out.println("请输入日期:(格式:年月日 :2013-09-01)");

/*获取用户输入*/

Scanner scanner = new Scanner(System.in);

String toDay = scanner.nextLine();

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

Date date = null;

try {

date = df.parse(toDay); //字符串日期转换为日期

Calendar calendar = new GregorianCalendar();

calendar.setTime(date);//日期转为日历

int day = calendar.get(Calendar.DATE);//获取当前日期的天

calendar.set(Calendar.DATE, 1);//取日期的第一天

int begin = calendar.get(Calendar.DAY_OF_WEEK);//取日期的第一天是星期几

int end = calendar.getActualMaximum(Calendar.DATE);//取日期的最后一天

System.out.println("日\t一\t二\t三\t四\t五\t六");

/*显示第一天前的空星期*/

for(int i=1;i<begin;i++){

System.out.print("\t");

}

/*显示所有日期*/

for(int i=1;i<=end;i++){

if(day == i){//用*标识输入的日期

System.out.print(i+"*\t");

}else{

System.out.print(i+"\t");

}

int week = calendar.get(Calendar.DAY_OF_WEEK);//获取当天是星期几

if(week == Calendar.SATURDAY){//遇到星期六换行

System.out.println();

}

calendar.add(Calendar.DATE, 1);//日历加1天

}

} catch (ParseException e) {

System.out.println("请按照格式输入");

}

}

}