自定义Date工具类.完成以下功能
1.可以获取到星期几
date.getDay()方法,可以获得0-6之间的数。
0表示周日,1-6表示周一至周六
/*
* 1.可以获取到星期几
* */
public static void getWeek(Date date){
int day = date.getDay();
switch (day){
case 0:
System.out.println("星期日");
break;
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
}
}
2.获取输入日期的当月第1天
date.setDate()方法,设置日期
date.setDate(1) 表示把日期设置为本月第一天
/*
* 2.获取输入日期的当月第1天
* */
public static void getFirstMonth(Date date){
date.setDate(1);
System.out.println((date.getMonth()+1)+"月"+date.getDate()+"日");
}
3.获得输入日期的当月最后一天
date.getMonth()方法,获取月份(0-11)
所有获取本月月份要+1 (date.getMonth()+1)
再通过date.setDate(),设置日期
1 3 5 7 8 10 12月份最后一天是31;
4 6 9 11月份呢最后一天是30;
2月要判断是否为闰年,闰年则29,平年则28;
/*
* 3.获得输入日期的当月最后一天
* */
public static void getLastMonth(Date date){
int m = date.getMonth()+1;
switch (m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
date.setDate(31);
break;
case 4:
case 6:
case 9:
case 11:
date.setDate(30);
break;
case 2:
int y = date.getYear()+1900;
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0){
date.setDate(29);
}else {
date.setDate(28);
}
}
System.out.println((date.getMonth()+1)+"月"+date.getDate()+"日");
}
4.判断是否是闰年
date.getYear()+1900 为本年,
1.能被4整除并且不能被100整除的年份,为闰年
2.能被400整除的年份,为闰年
/*
* 4.当断是否是闰年
* */
public static void judgeWhatYear(Date date){
int y = date.getYear()+1900;
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0){
System.out.println("闰年");
}else {
System.out.println("平年");
}
}
6.根据生日计算年龄
当前年份减去生日年份得到年龄
/*
* 6.根据生日计算年龄
* */
public static void getAge(Date date){
int i1 = date.getYear();
int i2 = new Date().getYear();
System.out.println(i2-i1+"岁");
}
7.获取当前日期
date.getYear()+1900 获得年份;
date.getMonth()+1 获得月份;
date.getDate() 获得日
/*
* 7.获取当前日期
* */
public static void getNowDate(){
Date date = new Date();
int year = date.getYear()+1900;
int month = date.getMonth()+1;
int d = date.getDate();
System.out.println(year+"年"+month+"月"+d+"日");
}
8.获取当前日期时间
date.getYear()+1900 获得年份;
date.getMonth()+1 获得月份;
date.getDate() 获得日;
date.getHours() 获得时;
date.getMinutes() 获得分;
date.getSeconds() 获得秒;
/*
* 8.获取当前日期时间
* */
public static void getNowDateTime(){
Date date = new Date();
int year = date.getYear()+1900;
int month = date.getMonth()+1;
int d = date.getDate();
int h = date.getHours();
int min = date.getMinutes();
int s = date.getSeconds();
System.out.println(year+"年"+month+"月"+d+"日"+" "+h+":"+min+":"+s);
}
9.将字符串日期转换为日期格式
通过SimpleDateFormat类的parse()方法 可以将String字符串转换成日期格式
/*
* 9.将字符串日期转换为日期格式
* */
public static void transformDate(String str) throws ParseException {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(str);
System.out.println(date);
}
下面写个测试类,测试工具类
package com.date;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/*
* 测试类
* */
public class Test {
public static void main(String[] args) throws Exception {
Scanner sc=new Scanner(System.in);
System.out.println("请输入日期(格式:yyyy-MM-dd)");
String s = sc.next();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(s);
//1.可以获取到星期几
System.out.print(s+" 是:");
DateClass.getWeek(date);
//2.获取输入日期的当月第1天
System.out.print(s+" 当月第一天是:");
DateClass.getFirstMonth(date);
//3.获得输入日期的当月最后一天
System.out.print(s+" 当月最后一天是:");
DateClass.getLastMonth(date);
//4.判断是否是闰年
System.out.print(s+" 是:");
DateClass.judgeWhatYear(date);
//6.根据生日计算年龄
System.out.print(s+" 年龄为:");
DateClass.getAge(date);
//7.获取当前日期
System.out.print("当前日期是:");
DateClass.getNowDate();
//8.获取当前日期时间
System.out.print("当前日期时间是:");
DateClass.getNowDateTime();
//9.将字符串日期转换为日期格式
System.out.println("请输入字符串日期(格式:yyyy-MM-dd)");
String str = sc.next();
System.out.print(str+" 转换成日期格式后:");
DateClass.transformDate(str);
}
}
执行结果: