Java学习笔记——java常用类(二)

在这里插入图片描述
Random型
实例化一个Random类对象可以创建一个随机数生成器。
语法
Random r =new Random(); .
其中,r是指Random对象。Random类提供了生成各种数据类型随机数的方法。

Random提供的方法
在这里插入图片描述

例:

package Usual_Class;
import java.util.Random;
import java.util.Scanner;
public class demo4 {
    public static void main(String[] args)
    {
        System.out.println("**********模拟微信抢红包***************\n");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要装入红包的总金额(元):");
        double total = sc.nextDouble(); //输入红包的总金额
        System.out.println("请输入红包的个数(个):");
        int bagsnum = sc.nextInt(); //输入红包的个数
        double min = 0.01;
        Random random = new Random(); //创建随机数对象
        if(total/bagsnum == 0.01) {
            for (int i = 1; i < bagsnum; i++)
{
                double money = min; // 让每个红包金额为最小金额
                total -= money; // 红包中剩余金额
                System.out.println("第" + i + "个红包:" + String.format("%.2f", money) + "元");
            }
        } else if (total / bagsnum < 0.01) {
// 当红包平均金额不足0.01时
            System.out.println("要保证每个人都能分到一分钱哟!");
            return;
        } else {
            for (int i = 1; i < bagsnum; i++)
{
                /*
                 * 本次红包可用最大金额= 
                 * 可分配金额-(红包总数-已发出的红包数)*红包的最小金额
                 */
                double max = total - (bagsnum -i) * min;
                double bound = max - min;// 设置随机金额取值范围
                /*
                * 根据随机金额的取值范围,随机生成红包金额。由nextInt(int bound) 
                * 只能用整型作参数,所以先将bound乘100(小数点向后移两位)
                * 获取一个整数后,将这个整数除100(小数点向左移两位) 并转换成与金额相同的浮点类型
                 */
                double safe = (double)random.nextInt((int) (bound * 100) / 100);
                double money = safe + min; // 最后加上红包的最小金额,以防safe出现0值
                total = total - money;// 替换total值
                System.out.println();
                System.out.println("第" + i + "个红包:" + String.format("%.2f", money) + "元");
            }
        }
        // 输出剩余金额
        System.out.println("第" + bagsnum + "个红包:" + String.format("%.2f", total) + "元");
    }
}

Date类

Date类主要用于操作日期和时间。使用Date类时,需要先创建Date类对象。

Date类的构造方法
在这里插入图片描述
例:long time =System.currentTimeMillis(); .

Date date = new Date(timeMillis); .

Date类的常用方法
在这里插入图片描述

DateFormat类
按照指定格式对日期或者时间进行格式化。DateFormat提供4种默认的格式化风格,即SHORT、MEDIUM、LONG和FULL。其中:
SHORT:完全为数字,如12.13.52或3:30PM
MEDIUM:较长,如Jan 12,1952;
LONG:更长,如:January 12,1952;
FULL:完全指定。

此外:使用DateFormat类还可以自定义日期、时间的格式。若要自定义日期、时间的格式,首先需要创建DateFormat类对象。由于DateFormat类是抽象类,因此需要使用DateFormat类的静态方法getDateInstance()创建DateFormat类对象。

语法:DateFormat df = DateFormat.getDateInstance(); .

DateFormat类的常用方法及说明
在这里插入图片描述

常用的格式字符串
在这里插入图片描述

例:

package Usual_Class;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale; 
public class demo5 { 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 创建日期
        Date date = new Date();
        // 创建不同的日期格式
        DateFormat df1 = DateFormat.getInstance();
        DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
        DateFormat df3 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒   EE");
        DateFormat df4 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE", Locale.CHINA);
        DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE", Locale.US);
        DateFormat df6 = new SimpleDateFormat("yyyy-MM-dd");
        DateFormat df7 = new SimpleDateFormat("yyyy年MM月dd日");
        // 将日期按照不同格式进行输出
        System.out.println("按照Java默认的日期格式:        " + df1.format(date));
        System.out.println();
        System.out.println("按指定格式yyyy-MM-dd hh:mm:ss EE:系统默认区域          " + df2.format(date));
        System.out.println();
        System.out.println("yyyy年MM月dd日 hh时mm分ss秒   EE  系统默认区域         " + df3.format(date));
        System.out.println();
        System.out.println("按指定格式yyyy-MM-dd hh:mm:ss EE:中国区域          " + df4.format(date));
        System.out.println();
        System.out.println("按指定格式yyyy-MM-dd hh:mm:ss EE:美国区域         " + df5.format(date));
        System.out.println();
        System.out.println("按指定格式yyyy-MM-dd 系统默认区域        " + df6.format(date));
        System.out.println();
        System.out.println("按指定格式yyyy年MM月dd日 系统默认区域        " + df7.format(date)); 
    } 
}
发布了62 篇原创文章 · 获赞 42 · 访问量 3324

猜你喜欢

转载自blog.csdn.net/weixin_45375866/article/details/100548112