java算法_日期类方法及例题(生日日期)

简介: java算法_日期类方法及例题(生日日期)

日期类函数


Date()类

常用方法:Date getTime() 获取当前对象距离某日期的毫秒数

Date setTime(long time)用于设置当前对象的时间为参数指定的毫秒数,距离标准时间


SimpleDate函数

通常使用format()方法将日期转换为字符串,yyyy表示年,MM表示月,dd表示日期,HH表示小时,mm分钟,ss表示秒,也可以使用parse()方法将字符串转换为日期

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//将某日日期转化为字符串
String str = simpleDateFormat.format(xx);


Calendar类:

常用方法:

Date getTime() 用于将Calendar类型转换为Date类型并返回

static Calendar getInstance():用户获取当前类的引用,不仅能获取当前的时间,还能指定需要获取的时间点

void set(int year,int month,int date,int hourOfDay,int minute,iint second) 根据参数设置年月日,Calendar.DATE是个常量,就是个固定值,永远不变。


例题:生日日期★★

题目描述

CCC老师的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。

输入

输入有多行,格式为YY MM DD 其中1949<=YY<=2006,日期绝对合法。

输出

输出有多行。即CCC老师生日第一万天以后的日期,格式为 “Y-M-D”。

样例输入 1979 4 16 样例输出 2006-9-1


思路:输入给定日期(字符串),有目标天数(10000天),求纪念日期,如果通过分析年月日来计算天数的话,做起来非常麻烦,使用java自带的Date()函数 和 Calendar 类中的方法,很容易就可以解决问题。

首先需要明白的是,我们输入的年月日是字符串,而要通过使用Calendar类中的add()方法,所以需要先声明日期格式,再把输入的数据转换为日期类型,再调用Calendar类中的方法求得现在的时间和10000天以后的纪念时间,日期格式不能被输出,所以需要再把我们求得的纪念日期转换为字符串,最后输出即可

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class fourth {
    public static void main(String[] args) throws ParseException {
        //image
        //创建日期格式
        SimpleDateFormat s1= new SimpleDateFormat("yyyy-MM-dd");
        Scanner s = new Scanner(System.in);
        while(s.hasNext()){
            //输入字符串日期
            int year = s.nextInt();
            int month = s.nextInt();
            int day = s.nextInt();
            //然后将输入的字符串转换为日期格式
            Date date =s1.parse(year+"-"+month+"-"+day);
            //创建Calendar 获取当前的时间
            Calendar now = Calendar.getInstance();
            //设置当前的时间 设置成date
            now.setTime(date);
            //然后给当前时间增加目标天数
            now.add(Calendar.DATE,10000);
            Date date1 = now.getTime();
            String str1 = s1.format(date1);
            String a[] = str1.split("-");
            year= Integer.parseInt(a[0]);
            month =Integer.parseInt(a[1]);
            day=Integer.parseInt(a[2]);
            System.out.println(year+"-"+month+"-"+day);
        }
    }
}
相关文章
|
1天前
|
算法 C语言
【数据结构与算法 经典例题】使用队列实现栈(图文详解)
【数据结构与算法 经典例题】使用队列实现栈(图文详解)
|
1天前
|
算法 C语言
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
|
1天前
|
算法 C语言 计算机视觉
【数据结构与算法 经典例题】括号匹配问题
【数据结构与算法 经典例题】括号匹配问题
|
1天前
|
算法
【数据结构与算法 经典例题】随机链表的复制(图文详解)
【数据结构与算法 经典例题】随机链表的复制(图文详解)
|
1天前
|
算法 C语言
【数据结构与算法 经典例题】链表的回文结构(图文详解)
【数据结构与算法 经典例题】链表的回文结构(图文详解)
|
1天前
|
算法
【数据结构与算法 经典例题】反转链表(图文详解)
【数据结构与算法 经典例题】反转链表(图文详解)
|
1天前
|
算法 C语言
【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点
【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点
|
1天前
|
算法 C语言
【数据结构与算法 经典例题】相交链表求交点
【数据结构与算法 经典例题】相交链表求交点
|
1天前
|
Java 机器人 程序员
深入理解Java中的类与对象:封装、继承与多态
深入理解Java中的类与对象:封装、继承与多态
|
1天前
|
缓存 监控 Java
Java中的内存泄漏及其排查方法
Java中的内存泄漏及其排查方法