练习_请使用日期时间相关的API,计算出一个人已经出生了多少天与Calendar类介绍_获取对象的方式

练习_请使用日期时间相关的API,计算出一个人已经出生了多少天

请使用日期时间相关的API,计算出一个人已经出生了多少天。

思路:
1.获取当前时间对应的毫秒值
2.获取自己出生日期对应的毫秒值3.两个时间相减(当前时间-出生日期)

1.

package Date;
/*
//练习:请使用时间相关的API,计算一个人已经出生多少天了
//分析:1.使用Scanner类中的方法next,获取出生日期
//2.使用DateFormat类中的方法Parse,把字符串的出生日期,解析为Date格式的出生日期
//3.把Date格式的出生日期转化为毫秒值
//4.获取当前日期,转化为毫秒值
//5.使用当前日期的毫秒值-出生日期的毫秒值
//6.把毫秒差值转换为天(s/1000/60/60/24)
 */
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Demo03_lianxi {
    public static void main(String[] args) throws ParseException {
        System.out.println("请输入出生日期(年.月.日):");
        //1.获取键盘输入的出生日期
        String birthString = new Scanner(System.in).next();
        //2.将字符串转换为日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
        Date birthDate = sdf.parse(birthString);
        //3.获取今天的日期
        Date todayDate = new Date();
        //4.将出生日期与今天的日期转换为毫秒对象
        long birthSecond = birthDate.getTime();
        long todaySecond = todayDate.getTime();
        long resultSecond = todaySecond - birthSecond;
        if(resultSecond<0){
            System.out.println("你还没出生呢!");
        }else{
            System.out.println("你已经出生了"+resultSecond/1000/60/60/24+"天");
        }
    }
}

 

2.

package Date;
/*
//练习:请使用时间相关的API,计算一个人已经出生多少天了
//分析:1.使用Scanner类中的方法next,获取出生日期
//2.使用DateFormat类中的方法Parse,把字符串的出生日期,解析为Date格式的出生日期
//3.把Date格式的出生日期转化为毫秒值
//4.获取当前日期,转化为毫秒值
//5.使用当前日期的毫秒值-出生日期的毫秒值
//6.把毫秒差值转换为天(s/1000/60/60/24)

*/
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class Demo04_Total_Brithday { public static void main(String[] args) throws ParseException { Scanner data = new Scanner(System.in); System.out.println("请输入您的出生日期,格式为:1999-02-03"); String brithday_data = data.next(); // 获取出生日期,类型为字符串 // 通过SimpleDateFormatf类中的parse把出生日期解析为Date格式的出生日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date brithdaydata = sdf.parse(brithday_data); // 把Data格式的出生日期转换成毫秒值 long brithday_time = brithdaydata.getTime(); // 获取当前日期,转换成毫秒值 long today = new Date().getTime(); // 使用当前日期的毫秒值-出生日期的毫秒值 long time = today-brithday_time; // 把毫秒差值转换成天(1天 = 24 x 60 x 60 x 1000 = 86400000) long total_days = time/24/60/60/1000; System.out.println("从您的出生日期到现在共有:"+total_days+"天"); } }

3

package Date;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
 
/*
    练习:
        请使用日期时间相关的API,计算出一个人已经出生了多少天。
    分析:
        1.使用Scanner类中的方法next,获取出生日期
        2.使用DateFormat类中的方法parse,把字符串的出生日期,解析为Date格式的出生日期
        3.把Date格式的出生日期转换为毫秒值
        4.获取当前的日期,转换为毫秒值
        5.使用当前日期的毫秒值-出生日期的毫秒值
        6.把毫秒差值转换为天(s/1000/60/60/24)
 */
public class Demo05_lianxi {
    public static void main(String[] args) throws ParseException {
        //1.使用Scanner类中的方法next,获取出生日期
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的出生日期,格式:yyyy-MM-dd");
        String birthdayDateString = sc.next();
        //2.使用DateFormat类中的方法parse,把字符串的出生日期,解析为Date格式的出生日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date birthdayDate = sdf.parse(birthdayDateString);
        //3.把Date格式的出生日期转换为毫秒值
        long birthdayDateTime = birthdayDate.getTime();
        //4.获取当前的日期,转换为毫秒值
        long todayTime = new Date().getTime();
        //5.使用当前日期的毫秒值-出生日期的毫秒值
        long time = todayTime-birthdayDateTime;
        //6.把毫秒差值转换为天(s/1000/60/60/24)
        System.out.println(time/1000/60/60/24);
    }
}

4.

package Date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;


//练习:请使用时间相关的API,计算一个人已经出生多少天了
//分析:1.使用Scanner类中的方法next,获取出生日期
//2.使用DateFormat类中的方法Parse,把字符串的出生日期,解析为Date格式的出生日期
//3.把Date格式的出生日期转化为毫秒值
//4.获取当前日期,转化为毫秒值
//5.使用当前日期的毫秒值-出生日期的毫秒值
//6.把毫秒差值转换为天(s/1000/60/60/24)
public class DemoBirth {
    public static void main(String[] args) throws ParseException {
        //分析:1.使用Scanner类中的方法next,获取出生日期
        Scanner scanner=new Scanner(System.in);//键盘输入天数
        System.out.println("请输入您的出生日期,格式:yyyy-MM-dd");
        String birthdayDateString=scanner.next();//获取键盘输入内容
        //使用DateFormat类中的方法Parse,把字符串的出生日期,解析为Date格式的出生日期
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date date=sdf.parse(birthdayDateString);
        System.out.println("您的出生日期="+date);
        //3.把Date格式的出生日期转化为毫秒值
        long birthdayDateTime=date.getTime();
        //4.获取当前日期,转化为毫秒值
        long todayTime=new Date().getTime();
        //5.使用当前日期的毫秒值-出生日期的毫秒值
        long time=todayTime-birthdayDateTime;
        //6.把毫秒差值转换为天(s/1000/60/60/24)
        System.out.println("您破蛋已经"+time/1000/60/60/24+"天了");
    }
}

Calendar类介绍_获取对象的方式

日历我们都是见过的吧

 

 java.uti1.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。

获取方式
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法类对象,如下∶
Calendar静态方法
public static calendar getInstance():使用默认时区和语言环境获得一个日历

package Date_demo02;

/*
java.util.calendar类:日历类
calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR )
caLendar类无法直接创建对象使用,里边有一个静态方法叫getInstance() ,该方法返回了calendar类的子类对象static calendar getInstance()使用黑认时区和语言环境获得一个日历。
 */

import java.util.Calendar;

public class Demo04_Calendar {
    public static void main(String[] args) {
        Calendar instance = Calendar.getInstance();
        System.out.println(instance);
    }
}

 

常用方法
根据Calendar类的API文档,常用方法有:
public int get(int field):返回给定日历字段的值。
public void set(int field,int value):梅给定的日历字段设置为给定值。
public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。Calendar类中提供很多成员常量,代表给定的日历字段︰

package Date_demo02;

import java.util.Calendar;

/*
Calendar类的成员方法:
    public int get(int field):返回给定日历字段的值。
    public void set(int field,int value):梅给定的日历字段设置为给定值。
    public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
    public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
成员方法的参数
    成员方法的参数:
    int field:日历类的字段,可以使用calendar类的静态成员变量获取public static final int YEAR = 1;年
    public static final int MONTH = 2;月
    public static finat int DATE = 5;月中的某一天
    public static final int DAY_OF_MONTH= 5;月中的某一天public static final int HOUR = 10;时
    public static final int MINUTE = 12;分public static final int sECOND = 13秒;

 */
public class Demo05_Calendar {
    public static void main(String[] args) {
            demo01();
            demo02();
            demo03();
    }
        /*
        public int get(int field):返回给定日历字段的值。参数:传递指定的日历字段(YEAR,NMONTH... )
        返回值:日历字段代表具体的值
         */
    private static void demo01(){
        Calendar instance = Calendar.getInstance();
        int i1 = instance.get(Calendar.YEAR);
        System.out.println(i1);

        int i2 = instance.get(Calendar.MONTH+1);//西方的月份0-11 东方:1-12
        System.out.println(i2);

        int i3 = instance.get(Calendar.DATE);
        int i4 = instance.get(Calendar.DAY_OF_MONTH);
        System.out.println(i3);
        System.out.println(i4);
    }
    /*
    public void set(int field, int value):将给定的日历字段设置为给定值。参数:
int field:传递指定的日历字段(YEAR, MONTH. . . )int value:传递的字段设置的具体的值
     */
    private static void demo02(){
        Calendar instance = Calendar.getInstance();
       instance.set(Calendar.YEAR,9999);
       instance.set(Calendar.MONTH,9);
       instance.set(Calendar.DATE,9);
       instance.set(8888,8,8);
        int i1 = instance.get(Calendar.YEAR);
        System.out.println(i1);

        int i2 = instance.get(Calendar.MONTH+1);//西方的月份0-11 东方:1-12
        System.out.println(i2);

        int i3 = instance.get(Calendar.DATE);
        int i4 = instance.get(Calendar.DAY_OF_MONTH);
        System.out.println(i3);
        System.out.println(i4);
    }
    /*
    public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量把指定的字段增加/减少指定的值
        参数:
    int field:传递指定的日历字段(YEAR , MONTH. . .)int amount:增加/减少的值
                正数:增加
        负数:减少
     */
    private static  void demo03(){
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.YEAR,2);
        int i1 = instance.get(Calendar.YEAR);
        System.out.println(i1);

        int i2 = instance.get(Calendar.MONTH+1);//西方的月份0-11 东方:1-12
        System.out.println(i2);

        int i3 = instance.get(Calendar.DATE);
        int i4 = instance.get(Calendar.DAY_OF_MONTH);
        System.out.println(i3);
        System.out.println(i4);

    }
}

 

 

 

posted @ 2022-07-05 15:50  zj勇敢飞,xx永相随  阅读(94)  评论(0编辑  收藏  举报