Java日历案例练习
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class DatePractice {
final static String[] str = {"日","一","二","三","四","五","六"};
public static void main(String[] args) {
show(handleDate(getDate()));
}
private static String getDate(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入日期(格式:2020-3-18)");
String str = sc.next();
return str;
}
private static Calendar handleDate(String s) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cd = new GregorianCalendar();
try {
cd.setTime(df.parse(s));
} catch (ParseException e) {
e.printStackTrace();
}
return cd;
}
private static void show(Calendar cd) {
int weak = cd.getMaximum(Calendar.WEEK_OF_MONTH) + 1;
int day = cd.getMaximum(Calendar.DAY_OF_MONTH);
Object obj = cd.clone();
Calendar cd1 = (Calendar)obj;
cd1.set(Calendar.DAY_OF_MONTH,1);
Object[][] cup = new Object[weak][7];
for(int i = 0;i < cup[0].length; i++) {
cup[0][i] = str[i];
}
for(int i=1; i < weak ; i++) {
for(int j = 0;j < 7 ; j++) {
if(cd1.get(Calendar.DAY_OF_WEEK) == j+1) {
cup[i][j] = cd1.get(Calendar.DAY_OF_MONTH);
if(cd1.get(Calendar.DAY_OF_MONTH) == day) {
break;
}
if(cd1.get(Calendar.DAY_OF_WEEK) == 7) {
cd1.add(Calendar.DAY_OF_MONTH, 1);
break;
}
cd1.add(Calendar.DAY_OF_MONTH, 1);
}
}
if(cd1.get(Calendar.DAY_OF_MONTH) == day) break;
}
for(int i=0; i < weak ; i++) {
for(int j = 0;j < 7 ; j++) {
if(cup[i][j] == null) System.out.print("" + '\t');
else if(!cup[i][j].equals((Object)cd.get(Calendar.DAY_OF_MONTH))) {
System.out.print(""+cup[i][j]+'\t');
}else System.out.print(""+cup[i][j]+'*'+'\t');
}
System.out.println();
}
}
}
结果演示
![结果演示:](https://img-blog.csdnimg.cn/20200326122808883.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FtYml0aW9fTg==,size_16,color_FFFFFF,t_70)