Java_控制台实现可视化日历

方法一:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class VisualCalendar2 {

	public static void main(String[] args) throws ParseException {
		System.out.println("Please input date(Example:2019-7-17): ");
		Scanner scanner = new Scanner(System.in);
		String str1 = scanner.nextLine();
		System.out.println("Your date is: " + str1);

		// convert String to date
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
		Date date1 = sdf1.parse(str1);

		// convert date to calendar
		GregorianCalendar c1 = new GregorianCalendar();
		c1.setTime(date1);

		int day = c1.get(Calendar.DATE);

		c1.set(Calendar.DATE, 1);

		System.out.println("Sun\tMon\tTue\tWed\tThu\tFri\tSat");
		int dow = c1.get(Calendar.DAY_OF_WEEK) - 1;
		// System.out.println(dow);

		int count = 0;
		int maxDate = c1.getActualMaximum(Calendar.DATE);
		for (int i = 1 - dow; i <= maxDate; i++) {
			if (i == day) {
				System.out.print(i + "*\t");
			} else if (i >= 1) {
				System.out.print(i + "\t");
			} else {
				System.out.print("\t");
			}
			count++;
			if (count % 7 == 0 && count != 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;

public class VisualCalendar {

	public static void main(String[] args) throws ParseException {
		System.out.println("Please input date(Example:2019-7-17): ");
		Scanner scanner = new Scanner(System.in);
		String str1 = scanner.nextLine();
		System.out.println("Your date is: " + str1);

		// convert String to date
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
		Date date1 = sdf1.parse(str1);

		// convert date to calendar
		GregorianCalendar c1 = new GregorianCalendar();
		c1.setTime(date1);

		int day = c1.get(Calendar.DATE);

		c1.set(Calendar.DATE, 1);

		System.out.println("Sun\tMon\tTue\tWed\tThu\tFri\tSat");
		int dow = c1.get(Calendar.DAY_OF_WEEK);
		// System.out.println(dow);
		for (int i = 0; i < dow - 1; i++) {
			System.out.print("\t");
		}

		int maxDate = c1.getActualMaximum(Calendar.DATE);
		for (int i = 1; i <= maxDate; i++) {
			System.out.print(c1.get(Calendar.DATE) + ((c1.get(Calendar.DATE) == day) ? "*" : "") + "\t");
			if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
				System.out.println();
			}
			c1.add(Calendar.DATE, 1);
		}

	}

}

你可能感兴趣的:(Java_基础)