Java BigInteger类,BigDecimal类,Date类,DateFormat类及Calendar类用法示例

Java BigInteger类

1. 概述

BigInteger类是java.math包中提供的用于表示大整数的类,它可以处理比long类型更大范围的整数。在实际开发中,当需要进行高精度计算时,就会用到BigInteger类。

2. 用法示例

示例1:计算阶乘

以下代码实现了计算1000的阶乘,并输出结果。

import java.math.*;

public class BigIntegerTest {
    public static void main(String[] args) {
        BigInteger result = BigInteger.valueOf(1);
        for (int i = 1; i <= 1000; i++) {
            result = result.multiply(BigInteger.valueOf(i));
        }
        System.out.println("1000的阶乘为:" + result);
    }
}

示例2:判断是否为质数

以下代码实现了判断输入的一个整数是否为质数。

import java.math.*;

public class BigIntegerTest {
    public static void main(String[] args) {
        BigInteger num = BigInteger.valueOf(123456789);
        if (num.isProbablePrime(100)) {
            System.out.println(num + "是质数");
        } else {
            System.out.println(num + "不是质数");
        }
    }
}

Java BigDecimal类

1. 概述

BigDecimal类是java.math包中提供的用于表示高精度小数的类,它可以处理比double和float类型更高精度的小数。在实际开发中,当需要进行高精度小数运算时,就会用到BigDecimal类。

2. 用法示例

示例1:计算Pi

以下代码实现了计算π的值,并输出结果。

import java.math.*;

public class BigDecimalTest {
    public static void main(String[] args) {
        MathContext mc = new MathContext(100);
        BigDecimal pi = new BigDecimal(0);
        BigDecimal t = new BigDecimal(1);
        int k = 0;
        while (true) {
            BigDecimal r = new BigDecimal(2 * k + 1);
            BigDecimal s = new BigDecimal(-1);
            if (k % 2 == 0) {
                s = new BigDecimal(1);
            }
            BigDecimal u = new BigDecimal(1);
            for (int i = 1; i <= k; i++) {
                u = u.multiply(new BigDecimal(i));
            }
            pi = pi.add(s.multiply(t.multiply(r.divide(u, mc))));
            t = t.multiply(new BigDecimal(2));
            k++;
            if (r.divide(u, mc).compareTo(new BigDecimal("1E-100")) == -1) {
                break;
            }
        }
        System.out.println("π的值为:" + pi);
    }
}

示例2:高精度除法

以下代码实现了高精度除法,输入a和b两个数,输出a/b的结果。

import java.math.*;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal a = new BigDecimal("12345678901234567890.123456789");
        BigDecimal b = new BigDecimal("9876543210.987654321");
        MathContext mc = new MathContext(100);
        BigDecimal c = a.divide(b, mc);
        System.out.println(a+" / "+b+" = "+c);
    }
}

Java Date类

1. 概述

Date类是java.util包中提供的用于表示日期和时间的类。在实际开发中,我们需要处理各种时间日期相关的操作,使用Date类可以对时间日期进行统一的处理。

2. 用法示例

示例1:获取当前日期时间

以下代码实现了获取当前的日期时间,并输出结果。

import java.util.*;

public class DateTest {
    public static void main(String[] args) {
        Date now = new Date();
        System.out.println("当前日期时间为:" + now);
    }
}

示例2:计算两个日期之间的天数

以下代码实现了计算2019年2月1日和2022年7月30日之间的天数。

import java.util.*;
import java.text.*;

public class DateTest {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date start = sdf.parse("2019-02-01");
        Date end = sdf.parse("2022-07-30");
        long days = (end.getTime() - start.getTime()) / (1000 * 3600 * 24);
        System.out.println("2019年2月1日和2022年7月30日之间相差" + days + "天");
    }
}

Java DateFormat类

1. 概述

DateFormat类是java.text包中提供的用于格式化日期时间的类。在实际开发中,需要对日期时间进行格式化,以便更好的呈现。

2. 用法示例

示例1:日期时间格式化

以下代码实现了将日期时间对象格式化为指定的字符串。

import java.util.*;
import java.text.*;

public class DateFormatTest {
    public static void main(String[] args) {
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String strDate = sdf.format(now);
        System.out.println("当前日期时间为:" + strDate);
    }
}

示例2:字符串转为日期时间

以下代码实现了将字符串转为日期时间对象。

import java.util.*;
import java.text.*;

public class DateFormatTest {
    public static void main(String[] args) throws ParseException {
        String strDate = "2022-07-30 20:30:15";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf.parse(strDate);
        System.out.println("字符串" + strDate + "转为日期时间对象为:" + date);
    }
}

Java Calendar类

1. 概述

Calendar类是java.util包中提供的用于表示日历的类。在实际开发中,需要对日期进行运算、比较等操作,使用Calendar类可以方便的对日期进行操作。

2. 用法示例

示例1:计算指定日期的下一天

以下代码实现了计算2022年7月30日的下一天日期,并输出结果。

import java.util.*;

public class CalendarTest {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, 2022);
        calendar.set(Calendar.MONTH, Calendar.JULY);
        calendar.set(Calendar.DAY_OF_MONTH, 30);
        calendar.add(Calendar.DAY_OF_MONTH, 1);
        Date date = calendar.getTime();
        System.out.println("2022年7月30日的下一天日期为:" + date);
    }
}

示例2:计算两日期之间的天数

以下代码实现了计算2019年2月1日和2022年7月30日之间的天数。

import java.util.*;

public class CalendarTest {
    public static void main(String[] args) {
        Calendar start = Calendar.getInstance();
        start.set(Calendar.YEAR, 2019);
        start.set(Calendar.MONTH, Calendar.FEBRUARY);
        start.set(Calendar.DAY_OF_MONTH, 1);

        Calendar end = Calendar.getInstance();
        end.set(Calendar.YEAR, 2022);
        end.set(Calendar.MONTH, Calendar.JULY);
        end.set(Calendar.DAY_OF_MONTH, 30);

        long m = end.getTimeInMillis() - start.getTimeInMillis();
        long days = m / (1000 * 3600 * 24);
        System.out.println("2019年2月1日和2022年7月30日之间相差" + days + "天");
    }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java BigInteger类,BigDecimal类,Date类,DateFormat类及Calendar类用法示例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Tomcat网站发布配置方案详细说明

    Tomcat网站发布配置方案详细说明 简介 Tomcat是一个开源的、轻量级的、需要Java环境的Web服务器,被广泛应用于Java Web开发领域。本文将介绍如何在Tomcat上发布网站并进行配置。 步骤 1. 下载安装Tomcat 将安装包下载到本地,解压到指定目录。例如解压到目录/opt/tomcat。 2. 配置Tomcat 2.1 修改Tomcat…

    Java 2023年6月15日
    00
  • springBoot 与neo4j的简单整合示例

    下面是一份“springBoot与neo4j的简单整合示例”的完整攻略。 简介 Spring Boot是一种微服务框架,可帮助开发人员快速创建和配置开发中的应用程序。它具有快速启动、自动配置、无多余代码等特点。而Neo4j是一个高性能的图数据库,具有多种用途,如社交网络的关系建模、推荐系统等。将Spring Boot与Neo4j整合在一起可以使我们的应用程序…

    Java 2023年5月20日
    00
  • springboot中@RequestMapping的用法

    下面是关于“springboot中@RequestMapping的用法”的完整攻略。 @RequestMapping注解 @RequestMapping是Spring MVC中的注解,它可以将URL映射到一个特定的方法上。在Spring Boot应用中,我们可以使用它来定义REST API的终端点(Endpoint)。 常用属性 @RequestMappin…

    Java 2023年5月15日
    00
  • hibernate关于session的关闭实例解析

    关于“hibernate关于session的关闭实例解析”的完整攻略,我会从以下几个方面进行详细讲解: 什么是Hibernate Session Session关闭的几种方式 Session关闭的示例讲解 1. 什么是Hibernate Session 在Hibernate中,Session是一个非常重要的概念,它代表着Java程序和数据库之间的一次会话。在…

    Java 2023年5月20日
    00
  • Spring MVC请求参数的深入解析

    下面是 “Spring MVC请求参数的深入解析”的完整攻略。 一、背景 Spring MVC是目前最流行的web开发框架之一,它采用了MVC设计模式,能够很好地将数据模型(Model)、视图(View)和控制器(Controller)分离。在Spring MVC开发中,我们经常需要从用户发起的HTTP请求中获取请求参数,然后进行相应的业务逻辑处理。那么,如…

    Java 2023年5月16日
    00
  • Mybatis-Plus时间范围查询方式详解

    Mybatis-Plus时间范围查询方式详解 Mybatis-Plus是Mybatis的增强版,提供了多样化的查询方式,其中涉及到时间范围查询的内容,本篇文章就来详细讲解一下Mybatis-Plus中时间范围查询的使用方法。 1. 时间范围查询方式 Mybatis-Plus提供了4种时间范围查询方式,包括: 普通方式:通过where条件语句查询 Lambda…

    Java 2023年5月20日
    00
  • Java中如何正确重写equals方法

    Java中的equals方法通常需要被重写,以便进行对象之间的比较。正确重写equals方法不仅可以提高代码质量,而且可以避免因错误的比较导致的程序错误。下面是Java中如何正确重写equals方法的完整攻略。 1. 理解equals方法 在开始重写equals方法之前,我们需要先理解equals方法的作用以及如何使用它来比较两个对象。在Java中,equa…

    Java 2023年5月26日
    00
  • java实现字符串的全排列

    Java实现字符串的全排列 在Java中实现字符串的全排列需要使用递归算法。以下是具体的实现过程: 算法思路 将字符串转换为字符数组。 对字符数组进行排序,确保全排列按照字典序输出。 从第一个字符开始,依次和后面的字符交换位置。 对第一步和第三步进行递归操作,直到选定的第一个字符后面没有其他可选字符为止。 交换字符数组中已经选定的字符和下一位字符的位置,回溯…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部