JAVA学习-控制台打印日历功能的实现
程序员文章站
2022-05-07 21:55:04
...
日历打印主要应用知识点:
String到时间类(Date)的转换
String转换为Date类主要是通过类DateFormat实现,由于DateForam是一个抽象类,创建对象时必须使用其实现类SimpleDateFormat
使用DateFormat类中的parse()对字符串进行操作最终返回一个Date数据。其中,String型数值,必须要与格式化字符串“yyyy-MM-dd”所规定的格式一致,否则会报错。
并且在导入Date的包时,需要导入java.util.Date包,而非java.sql.Date包。
DateFormat date_f = new SimpleDateFormat("yyyy-MM-dd");
Date date = date_f.parse(str_date);
Calendar类的相关操作
Calendar的对象是针对日期进行操作,多用于日期的计算与展示。
//获取当前日期的年份
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
如:月份,日期,星期几等都只需要替换相应的常量
calender.getTime(); 将获取到时间,输出效果同Date型数据
calender.add(YEAR,1); 将当前日期增加1年,其他操作同get()方法
控制台打印日历:
package test01;
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 RiLi {
public static void main(String[] args) throws ParseException {
//1——从控制台依照要求输入一个字符串日期
System.out.println("请输入一个日期,格式如下:(2020-3-12)");
Scanner scanner = new Scanner(System.in);
String str_date = scanner.nextLine();
//2——将字符串——>时间类(Date)——>日历类
DateFormat date_f = new SimpleDateFormat("yyyy-MM-dd");
Date date = date_f.parse(str_date);
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
//3——获取当前日期中的日属性值
int current_date = calendar.get(calendar.DATE);
//4——将日期中的日属性值设置为1号,也可以用DAY_OF_MONTH
calendar.set(Calendar.DATE, 1);
System.out.println("日\t一\t二\t三\t四\t五\t六");
//5——获取本月总天数值
int max_Month_Day = calendar.getActualMaximum(Calendar.DATE);
//6——获取本月的1号是周几,返回值:1-7,1表示周日,7表示周六
int week_day = calendar.get(Calendar.DAY_OF_WEEK);
//7——显示出1号之前空闲空间
for (int i = 0; i < week_day; i++) {
System.out.print("\t");
}
//8——打印本月的所有天数
for (int i = 1; i <= max_Month_Day; i++) {
//计算今天的日期是本周的周几,如果是周六,则换行
if (calendar.get(Calendar.DAY_OF_WEEK) == 7) {
System.out.println();
}
//如果当前即将被打印的日期与输入的日期一致,则输出
if (calendar.get(Calendar.DATE) == current_date) {
System.err.print(calendar.get(Calendar.DATE) + "\t");
}
//循环输出其他日期时间
else {
System.out.print(calendar.get(Calendar.DATE) + "\t");
}
//每次循环,日期加一天
calendar.add(Calendar.DATE, 1);
}
}
}
上一篇: [翻译]Drools6.2帮助文档-9.Drools命令
下一篇: 规则引擎的应用