用java语言画一个可视化日历
程序员文章站
2022-05-07 21:55:22
...
用java语言画一个可视化的日历界
package com.zzit.calFrame;
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 yufu
*
*/
public class PaintCalendar {
public static void main(String[] args) {
System.out.println("请输入日期(格式:yyyy-MM-dd)");
Scanner input = new Scanner(System.in);
String temp = input.nextLine();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = df.parse(temp);// 字符串转日期
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);// 日期对象转为日历对象
int day = calendar.get(Calendar.DATE);// 获取当前日,方便后期做标记
calendar.set(Calendar.DATE, 1);// 获得当月的1号
int maxDate = calendar.getActualMaximum(Calendar.DATE);// 获取当月的最大天数
System.out.println("日\t一\t二\t三\t四\t五\t六");
// 该循环把每月的1号之前的几天打印空格
for (int i = 1; i < calendar.get(Calendar.DAY_OF_WEEK); i++) {
System.out.print("\t");
}
// 把整月循环打出
for (int i = 1; i <= maxDate; i++) {
if (i == day) {
System.out.print("*");
}
System.out.print(i + "\t");
// 如果那一天逢周六换行
int w = calendar.get(Calendar.DAY_OF_WEEK);
if (w == Calendar.SATURDAY) {
System.out.println();
}
// 循环一次日期加一天
calendar.add(Calendar.DATE, 1);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
上一篇: 初探Drools--workbench 中文乱码问题
下一篇: PHP日历函数