日期类Calendar是一个抽象类,提供了日期计算的相关功能,GregorianCalendar是一个实现类
package cn.qq.com;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TsetCalendar03 {
public static void main(String[] args) {
String str = "2019-08-02";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = df.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar a = new GregorianCalendar();
a.setTime(date);
a.set(Calendar.DAY_OF_MONTH,1);
System.out.println("日\t一\t二\t三\t四\t五\t六\t");
for (int j = 0; j < a.get(Calendar.DAY_OF_WEEK) -1; j++) {
System.out.print("\t");
}
int days = a.getActualMaximum(Calendar.DATE);
for (int i = 1; i <= days ; i++) {
System.out.print(a.get(Calendar.DAY_OF_MONTH) + "\t");
if (a.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
System.out.println();
}
a.add(Calendar.DAY_OF_MONTH,1);
}
}
}
实现控制台打印日历(一)(综合运用DateFormat,Calendar)
package cn.qq.com;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TsetCalendar03 {
public static void main(String[] args) {
String str = "2020-09-10";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = df.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar a = new GregorianCalendar();
a.setTime(date);
a.set(Calendar.DAY_OF_MONTH,1);
System.out.println("日\t一\t二\t三\t四\t五\t六\t");
for (int j = 0; j < a.get(Calendar.DAY_OF_WEEK); j++) {
System.out.print("\t");
}
int days = a.getActualMaximum(Calendar.DATE);
for (int i = 1; i <= days ; i++) {
System.out.print(a.get(Calendar.DAY_OF_MONTH) + "\t");
a.add(Calendar.DAY_OF_MONTH,1);
if (a.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
System.out.println();
}
}
}
}
实现控制台打印日历(二)
package cn.qq.com;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class TestCalendar4 {
public static void main(String[] args) {
String str = "2019-08-02";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("请输入日期(格式为:1998-06-12):");
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
Date date = null;
try {
date = df.parse(str);
}catch(Exception e ){
e.printStackTrace();
}
Calendar a = new GregorianCalendar();
a.setTime(date);
int days = a.get(Calendar.DAY_OF_MONTH);
int day = a.getActualMaximum(Calendar.DATE);
a.set(Calendar.DAY_OF_MONTH,1);
System.out.println("日\t一\t二\t三\t四\t五\t六\t");
for (int i = 0; i < a.get(Calendar.DAY_OF_WEEK) -1 ; i++) {
System.out.print("\t");
}
for (int i = 1; i <= day ; i++) {
if (days == a.get(Calendar.DAY_OF_MONTH)) {
System.out.print(a.get(Calendar.DAY_OF_MONTH)+"*\t");
}else {
System.out.print(a.get(Calendar.DAY_OF_MONTH) +"\t");
}
if (a.get(Calendar.DAY_OF_WEEK) == 7) {
System.out.println();
}
a.add(Calendar.DAY_OF_MONTH,1);
}
}
}