每日一学(26)——常用(API)日期相关类练习

求自己已经出生多少天

思路:

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()  //获取该日历对象转成的日期对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值