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);
        }
    }
}
相关文章
|
7天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
34 17
|
2天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
26 4
|
13天前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
35 17
|
3天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
11 2
|
8天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
7天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
11 2
|
12天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
12天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
11天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
19 3
|
14天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
20 5