更新了这么多期的python今天就换换胃口,更新一篇java的小程序,程序的功能是向方法输入一个日期然后可以获取本月的日历和本日期的所在位置。
话不多说,我们上才艺。
import java.awt.DefaultKeyboardFocusManager;
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;
//导入相关的包
public class TestCaemdar2 {
public static void main(String[] args) throws ParseException {
System.out.println("请输入日期(例如:2020-11-25):");
Scanner scanner= new Scanner(System.in);
String string = scanner.nextLine();
//获取用户输入的日期。
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//设置格式
Date date = df.parse(string);
//将字符串string转换成Data类型并赋值给date
Calendar calendar = new GregorianCalendar();
System.out.println(calendar);
calendar.setTime(date);
int days = calendar.getActualMaximum(Calendar.DATE);
//获取该月的天数
//定义全局变量月的天数
int day = calendar.get(Calendar.DAY_OF_MONTH);
//获取改天是几号
System.out.println("日\t一\t二\t三\t四\t五\t六");
//打印表头
calendar.set(Calendar.DAY_OF_MONTH ,1);
//将改天设置为1号,如果你要问我为什么。你看下面就知道了,上面以及将用户输入的日期的号
//数赋值给day变量所有不用担心后面用不了
for (int j = 0 ; j<(calendar.get(Calendar.DAY_OF_WEEK)-1); j++ ) {
System.out.print("\t");
}
//该循环是为了将号数与周几对准,(calendar.get(Calendar.DAY_OF_WEEK)-1)获取1号是周
//几然后进行变量至1号的星期数的前一天,都打印成空这里"\t"就是空。
//这里就是要开始打印那一月的每一天了
for (int i = 1;i<=days;i++) {
//calendar.getActualMaximum(Calendar.DATE)获取每月的天数
if (day==calendar.get(Calendar.DAY_OF_MONTH) ){
System.out.print(calendar.get(Calendar.DAY_OF_MONTH )+"*\t");
//本判断是为了显示出该天所在的位置用*号标出。
}else {
System.out.print(calendar.get(Calendar.DAY_OF_MONTH )+"\t");
//不是用户输入的那一天就正常打印出数字。
}
if(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) {
System.out.println();//在周六后换行
}
calendar.add(Calendar.DAY_OF_MONTH,1);
//每打印出一个日期就将日期加一从而打印出本月所有日期
}
}
}
输出结果:
本代码是小编学习过尚学堂的java300集后打的代码,如果你像我一样是初学java的小白你也可以看他们的课程,我这不是在打广告哈哈。如果觉得本篇文章对您有用的话麻烦点赞关照加收藏谢谢。