时间周期 java_周期和持续时间 / Period and Duration

# 周期和持续时间 / Period and Duration

当您编写代码来指定一段时间时,请使用最符合您需要的类或方法: Duration 类, Period 类或 ChronoUnit.between 方法。

甲持续时间测量使用基于时间的值(秒,毫微秒)的时间量。Period 使用基于日期的值(年,月,日)。

注 一天的持续 / Duration 时间正好是 24 小时。一天的时间,当添加到 ZonedDateTime 时,

可能会根据时区而变化。例如,如果它发生在夏令时的第一天或最后一天。

# Duration

在测量机器时间的情况下,Duration 最合适,例如使用 Instant 对象的代码。Duration 对象以秒或纳秒度量,

不使用基于 Date 的结构,如年、月和日,尽管类提供了转换为天数、小时和分钟的方法。一个 Duration 可以有一个负值,

如果它是在开始点之前发生的端点创建的。

以下代码以纳秒计算两个瞬间之间的持续时间:

比如:将 10 秒变成一个 Duration,再让 start 加上这个 Duration,也就是加 10 秒;

这种 api 可能会更灵活,在计算完两个时间点的持续时间后,还可以进行计算

# ChronoUnit

定义了用于测量时间的单位。当你想要在一个单位的时间内测量一段时间,比如几天或几秒时,

ChronoUnit.between 可以做到。between 方法与所有基于时间的对象一起工作,但是它只返回单个单元的数量。

下面的代码以毫秒为间隔计算两个时间戳之间的差距:

而 Duration 类则可以转换为更多的时间单位;

# Period

要用基于日期的值(年、月、日)来定义大量的时间,使用周期类。周期类提供了各种 get 方法,

例如 getMonths, getDays 和 getYears,这样您就可以从周期中提取出时间的数量。

时间由三个单位组成:月、日、年。为了显示在一个单位时间内测量的时间量,比如天数,你可以使用 ChronoUnit.between 的方法。

下面的代码报告了你的年龄,假设你是在 1960 年 1 月 1 日出生的。周期类用于确定数年、月和日的时间。

同一时期,在总天数中,是通过使用 ChronoUnit.between 来确定的。在方法之间,在括号中显示:

这些计算不考虑时区差异。举个例子,如果你出生在澳大利亚,但现在住在班加罗尔,这就会略微影响你的确切年龄。

在这种情况下,使用一个周期与 ZonedDateTime 类一起使用。当你向一个 ZonedDateTime 添加一个 Period 时,时间差异就会被观察到。

# 总结 Duration : 可被转换为天,小时,分钟,秒,毫秒,纳秒

Period :可被转换为年,月,天

ChronoUnit:可以测量任意一个单位的间隔时间;也提供了各种单位常量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include <Adafruit_I2CDevice.h> #define DRV2605_ADDR 0x5A ///< Device I2C address #define DRV2605_REG_STATUS 0x00 ///< Status register #define DRV2605_REG_MODE 0x01 ///< Mode register #define DRV2605_MODE_INTTRIG 0x00 ///< Internal trigger mode #define DRV2605_MODE_EXTTRIGEDGE 0x01 ///< External edge trigger mode #define DRV2605_MODE_EXTTRIGLVL 0x02 ///< External level trigger mode #define DRV2605_MODE_PWMANALOG 0x03 ///< PWM/Analog input mode #define DRV2605_MODE_AUDIOVIBE 0x04 ///< Audio-to-vibe mode #define DRV2605_MODE_REALTIME 0x05 ///< Real-time playback (RTP) mode #define DRV2605_MODE_DIAGNOS 0x06 ///< Diagnostics mode #define DRV2605_MODE_AUTOCAL 0x07 ///< Auto calibration mode #define DRV2605_REG_RTPIN 0x02 ///< Real-time playback input register #define DRV2605_REG_LIBRARY 0x03 ///< Waveform library selection register #define DRV2605_REG_WAVESEQ1 0x04 ///< Waveform sequence register 1 #define DRV2605_REG_WAVESEQ2 0x05 ///< Waveform sequence register 2 #define DRV2605_REG_WAVESEQ3 0x06 ///< Waveform sequence register 3 #define DRV2605_REG_WAVESEQ4 0x07 ///< Waveform sequence register 4 #define DRV2605_REG_WAVESEQ5 0x08 ///< Waveform sequence register 5 #define DRV2605_REG_WAVESEQ6 0x09 ///< Waveform sequence register 6 #define DRV2605_REG_WAVESEQ7 0x0A ///< Waveform sequence register 7 #define DRV2605_REG_WAVESEQ8 0x0B ///< Waveform sequence register 8 #define DRV2605_REG_GO 0x0C ///< Go register #define DRV2605_REG_OVERDRIVE 0x0D ///< Overdrive time offset register #define DRV2605_REG_SUSTAINPOS 0x0E ///< Sustain time offset, positive register #define DRV2605_REG_SUSTAINNEG 0x0F ///< Sustain time offset, negative register #define DRV2605_REG_BREAK 0x10 ///< Brake time offset register #define DRV2605_REG_AUDIOCTRL 0x11 ///< Audio-to-vibe control register #define DRV2605_REG_AUDIOLVL \ 0x12 ///< Audio-to-vibe minimum input level register #define DRV2605_REG_AUDIOMAX \ 0x13 ///< Audio-to-vibe maximum input level register #define DRV2605_REG_AUDIOOUTMIN \ 0x14 ///< Audio-to-vibe minimum output drive register #define DRV2605_REG_AUDIOOUTMAX \ 0x15 ///< Audio-to-vibe maximum output drive register #define DRV2605_REG_RATEDV 0x16 ///< Rated voltage register #define DRV2605_REG_CLAMPV 0x17 ///< Overdrive clamp voltage register #define DRV2605_REG_AUTOCALCOMP \ 0x18 ///< Auto-calibration compensation result register #define DRV2605_REG_AUTOCALEMP \ 0x19 ///< Auto-calibration back-EMF result register #define DRV2605_REG_FEEDBACK 0x1A ///< Feedback control register #define DRV2605_REG_CONTROL1 0x1B ///< Control1 Register #define DRV2605_REG_CONTROL2 0x1C ///< Control2 Register #define DRV2605_REG_CONTROL3 0x1D ///< Control3 Register #define DRV2605_REG_CONTROL4 0x1E ///< Control4 Register #define DRV2605_REG_VBAT 0x21 ///< Vbat voltage-monitor register #define DRV2605_REG_LRARESON 0x22 ///< LRA resonance-period register
07-16

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值