package com.zrj.lx;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
/**
* @category打印日历表
* @author zrj
*/
public class MyCalendar {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个时间:格式为2016 08 22");
String str = sc.nextLine();
// 时间格式化方式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd");
// 将字符串转化成时间
Date date = sdf.parse(str);
// 将时间转化成日历格式类
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(date);// 更改日历时间
// 得到当天输入的是几号,便于打印时有标识
int currday = gc.get(Calendar.DAY_OF_MONTH);
// 重置时间为1号,便于打印时从星期几开始打印;
gc.set(Calendar.DAY_OF_MONTH, 1);
// System.out.println(gc.getTime());//查看是否重置成功?
int day = gc.getActualMaximum(Calendar.DAY_OF_MONTH);// 获得当月的总共天数,
int week = gc.get(Calendar.DAY_OF_WEEK);// 获得1号是星期几,用天打印空格
// 调用打印方法
printBox(day, week, currday);
}
public static void printBox(int day, int week, int currday) {
String weeks[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
// 打印日历星期表头
for (int i = 0; i < weeks.length; i++) {
System.out.print(weeks[i] + "\t");
}
System.out.println();
// 打印空格
for (int i = 0; i < week - 1; i++) {
System.out.print("\t");
}
// 打印天数
for (int i = 1; i <= day; i++) {
if (i == currday) {
System.out.print(" " + i + "! ");// 当天的标识
} else {
System.out.print(" " + i + "\t");
}
// 打印7天换行
if ((week + i - 1) % 7 == 0) {
System.out.println();
}
}
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
/**
* @category打印日历表
* @author zrj
*/
public class MyCalendar {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个时间:格式为2016 08 22");
String str = sc.nextLine();
// 时间格式化方式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd");
// 将字符串转化成时间
Date date = sdf.parse(str);
// 将时间转化成日历格式类
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(date);// 更改日历时间
// 得到当天输入的是几号,便于打印时有标识
int currday = gc.get(Calendar.DAY_OF_MONTH);
// 重置时间为1号,便于打印时从星期几开始打印;
gc.set(Calendar.DAY_OF_MONTH, 1);
// System.out.println(gc.getTime());//查看是否重置成功?
int day = gc.getActualMaximum(Calendar.DAY_OF_MONTH);// 获得当月的总共天数,
int week = gc.get(Calendar.DAY_OF_WEEK);// 获得1号是星期几,用天打印空格
// 调用打印方法
printBox(day, week, currday);
}
public static void printBox(int day, int week, int currday) {
String weeks[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
// 打印日历星期表头
for (int i = 0; i < weeks.length; i++) {
System.out.print(weeks[i] + "\t");
}
System.out.println();
// 打印空格
for (int i = 0; i < week - 1; i++) {
System.out.print("\t");
}
// 打印天数
for (int i = 1; i <= day; i++) {
if (i == currday) {
System.out.print(" " + i + "! ");// 当天的标识
} else {
System.out.print(" " + i + "\t");
}
// 打印7天换行
if ((week + i - 1) % 7 == 0) {
System.out.println();
}
}
}
}