目录
日期相关的类
与日期相关的类是一种常用类,分别是java.util.Date、java.sql.Date、SimpleDateFormat、Calendar、DateTimeFormatter、LocalDateTime等。
" java.util.Date "用于表示特定的瞬间,精准到毫秒,它提供了日期和时间的简单表示,但不支持复杂操作,包括日期和时间的信息。
" java.sql.Date "专门用于表示SQLDate类型的值,与 " java.util.Date "不同," java.sql.Date "只包括日期信息(年、月、日),不包括时间信息(小时、分钟、秒、毫秒),通常用于JDBC(java Database Connectivity)编程中,从数据库读取或写入日期类型的数据。
"SimpleDateFormat "提供了日期和时间格式化和解析的功能,允许设置日期和时间的显示样式,或将特定格式的字符串解析成日期和时间对象。
" Calendar "是一个抽象类,它为特定瞬间与一组日历字段提供了方法。
代码讲解
先建立一个类,然后输出语句,利用Scanner创建一个对象并给其赋值,然后利用SimpleDateFormat自定义一个日期格式, " throws ParseException "是异常处理
public class Wnl {
public static void main(String[] args) throws ParseException {
System.out.println("请输入一个年月:");
String str=new Scanner(System.in).next();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(str);
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
接下来是写出这个月总天数以及获得这个月的1号是星期几
int days=calendar.getActualMaximum(Calendar.DATE);
calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),1);
int week=calendar.get(Calendar.DAY_OF_WEEK);
最后一步打印日历,利用 for 循环遍历
System.out.println("一\t二\t三\t四\t五\t六\t七");
for(int i=1;i<week-1;i++){
System.out.print("\t");
}
for(int i=1;i<=days;i++){
System.out.print(i+"\t");
calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),i);
if(calendar.get(Calendar.DAY_OF_WEEK)==1){
System.out.println();
}
}
}
}
" System.out.print " 和" System.out.println "区别
" System.out.print " 代表输出语句不换行,输出内容后紧接着输出其他内容
" System.out.println " 代表输出语句换行,输出内容后直接到下一行的开头
效果预览
总结
一种结果可以有不同的方式去体现,由浅入深,与java打印万年历1.0和java打印万年历2.0相比较,Java打印万年历3.0代码更加简易,思维也更加容易。
学习是探索世界的一种方式 !