求自己已经出生多少天
思路:
1.获取当前时间对应的天数
2.获取自己出生日期对应的天数
3.两个时间相减(当前时间天数 – 出生日期天数)
代码实现:
public static void main(String[] args){
Calendar my = Calendar.getInstance();
Calendar c = Calendar.getInstance();
//设置出生年月日 1995-05-10
my.set(Calendar.YEAR, 1995);
my.set(Calendar.MONTH, 4);
my.set(Calendar.DATE, 10);
//获取时间中的天数
int day = c.get(Calendar.DATE);
int myDay = my.get(Calendar.DATE);
System.out.println(day - myDay);
}
下面代码的输出结果为:请输入出生日期,格式:yyyy-MM-dd 1992-09-17 9477
public static void function() throws Exception{
System.out.println("请输入出生日期,格式:yyyy-MM-dd");
//获取出生日期键盘输入
String birthdayString=new Scanner(System.in).next();
//将字符串的日期转成Date对象
//创建SimpleDateFormat对象,写日期模式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
//调用方法parse,字符串转成日期对象
Date birthdayDate=sdf.parse(birthdayString);
//获取今天的日期对象
Date todayDate=new Date();
//将两个日期转成毫秒值,Date类的方法getTime
long birthdaySecond=birthdayDate.getTime();
long todaySecond=todayDate.getTime();
long secone=todaySecond-birthdaySecond;
if(secone<birthdaySecond){
System.out.println("你还没出生呢");
}else{
System.out.println(secone/1000/60/60/24);
}
}
闰年计算
高级算法:日历设置到指定年份的8月1日,add向前偏移一天,获取天数,29闰年
下面代码的输出结果为:29
public static void function1(){
Calendar c=Calendar.getInstance();
//将日历设置到指定年的3月1日
c.set(2000, 2, 1);
//日历add方法,向前偏移1天
c.add(Calendar.DAY_OF_MONTH, -1);
//get方法获取天数
int day=c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
}
求出今天距离2020年1月1日还有多少天
思路:
1.获取当前时间对应的天数
2.获取2020年1月1日对应的天数
3.两个时间相减(2020年1月1日的天数 –当前时间天数)
代码实现:
public static void main(String[] args){
Calendar my = Calendar.getInstance();
Calendar c = Calendar.getInstance();
//设置年月日 2020-01-01
my.set(Calendar.YEAR, 2020);
my.set(Calendar.MONTH, 0);
my.set(Calendar.DATE, 1);
//获取时间中的天数
int day = c.get(Calendar.DATE);
int myDay = my.get(Calendar.DATE);
System.out.println(myDay - day);
}
正则表达式小总结
正则表达式的常用方法:
public boolean matches(String regex) //判断字符串是否匹配给定的规则
public String[] split(String regex) //根据给定正则表达式的匹配规则,拆分此字符串
public String replaceAll(String regex,String replacement) //将符合规则的字符串内容,全部替换为新字符串
1.Date: 日期/时间类
构造方法:
public Date()// 系统当前日期时间
public Date(long date) 得到一个1970年1月1日 0点这个时间基础上,加上参数date 毫秒值对应的日期时间
方法:public long getTime() 获取日期所对应的毫秒值
2.DateFormat:是日期/时间格式化子类的抽象类, 使用其子类SimpleDateFormat 实例化
构造方法:
public SimpleDateFormat() 默认的格式化操作
public SimpleDateFormat(String pattern) 按照指定的格式,进行日期格式化
日期和时间模式:y 年 M 年中的月份 d 月份中的天数 H 一天中的小时数(0-23) m 小时中的分钟数 s 分钟中的秒数 S 毫秒数
方法:
public final String format(Date date) 把日期 格式化成字符串
public Date parse(String source) 把日期字符串 转换成 日期对象
3.Calendar:日历类,可获取日期中指定字段的值
方法:public static Calendar getInstance() //获取日期对象
public int get(int field) //获取时间字段值
public void add(int field,int amount) //指定字段增加某值
public final void set(int field,int value) //设置指定字段的值
public final Date getTime() //获取该日历对象转成的日期对象