当前位置: 首页 > wzjs >正文

php网站开发工作描述找人做效果土去那网站找

php网站开发工作描述,找人做效果土去那网站找,步骤的近义词,广州管网建设一、源码 下面代码定义了一个表示持续时间(Duration)的类型及其相关操作。Duration 是基于 Quantity 类型的类型别名,专门用于表示以秒为单位的时间量。 use super::unit::Second; use super::quantity::{Quantity, NoPrefix}; use std::op…

一、源码

下面代码定义了一个表示持续时间(Duration)的类型及其相关操作。Duration 是基于 Quantity 类型的类型别名,专门用于表示以秒为单位的时间量。

use super::unit::Second;
use super::quantity::{Quantity, NoPrefix};
use std::ops::{Add, Sub, Mul, Div, AddAssign, SubAssign};
use std::fmt::{Display, Debug};/// 表示以秒为单位的持续时间类型
///
/// 这是 `Quantity<T, NoPrefix, Second>` 的类型别名
/// 其中:
/// - `T`: 存储的数值类型(如i32, f64等)
/// - `NoPrefix`: 表示没有单位前缀
/// - `Second`: 表示时间单位(秒)的维度
///
/// # 示例
/// ```
/// let duration = crate::time::Duration::from_seconds(30);
/// println!("Duration: {}", duration);
/// ```
pub type Duration<T> = Quantity<T, NoPrefix, Second>;impl<T> Duration<T> 
whereT: Copy + Add<Output = T> + Mul<Output = T> + Div<Output = T> + From<i64> + Display + Debug,
{/// 从秒数创建持续时间////// # 参数/// - `seconds`: 秒数////// # 返回值/// 返回对应的 `Duration` 实例////// # 示例/// ```/// let duration = crate::time::Duration::from_seconds(60);/// ```pub fn from_seconds(seconds: T) -> Self {Self::new(seconds)}/// 从分钟数创建持续时间////// # 参数/// - `minutes`: 分钟数////// # 返回值/// 返回对应的 `Duration` 实例////// # 示例/// ```/// let duration = crate::time::Duration::from_minutes(1.5);/// ```pub fn from_minutes(minutes: T) -> Self {Self::new(minutes * T::from(60))}/// 从小时数创建持续时间////// # 参数/// - `hours`: 小时数////// # 返回值/// 返回对应的 `Duration` 实例////// # 示例/// ```/// let duration = crate::time::Duration::from_hours(2);/// ```pub fn from_hours(hours: T) -> Self {Self::new(hours * T::from(3600))}/// 从天数创建持续时间////// # 参数/// - `days`: 天数////// # 返回值/// 返回对应的 `Duration` 实例////// # 示例/// ```/// let duration = crate::time::Duration::from_days(3);/// ```pub fn from_days(days: T) -> Self {Self::new(days * T::from(86400))}/// 从时分秒创建持续时间////// # 参数/// - `hours`: 小时数/// - `minutes`: 分钟数/// - `seconds`: 秒数////// # 返回值/// 返回对应的 `Duration` 实例////// # 示例/// ```/// let duration = crate::time::Duration::from_hms(1, 30, 15);/// ```pub fn from_hms(hours: T, minutes: T, seconds: T) -> Self whereT: Add<Output = T>,{Self::from_hours(hours) + Self::from_minutes(minutes) + Self::from_seconds(seconds)}/// 获取总秒数////// # 返回值/// 返回持续时间的总秒数////// # 示例/// ```/// let secs = crate::time::Duration::from_minutes(1).as_seconds();/// assert_eq!(secs, 60);/// ```pub fn as_seconds(self) -> T {self.get()}/// 获取总分钟数////// # 返回值/// 返回持续时间的总分钟数////// # 示例/// ```/// let mins = crate::time::Duration::from_seconds(120).as_minutes();/// assert_eq!(mins, 2);/// ```pub fn as_minutes(self) -> T {self.get() / T::from(60)}/// 获取总小时数////// # 返回值/// 返回持续时间的总小时数////// # 示例/// ```/// let hours = crate::time::Duration::from_minutes(120).as_hours();/// assert_eq!(hours, 2);/// ```pub fn as_hours(self) -> T {self.get() / T::from(3600)}/// 获取总天数////// # 返回值/// 返回持续时间的总天数////// # 示例/// ```/// let days = crate::time::Duration::from_hours(48).as_days();/// assert_eq!(days, 2);/// ```pub fn as_days(self) -> T {self.get() / T::from(86400)}
}// 运算符重载实现impl<T> AddAssign for Duration<T>
whereT: Add<Output = T> + Copy,
{/// 实现持续时间的加法赋值操作fn add_assign(&mut self, rhs: Self) {self.set(self.get() + rhs.get());}
}impl<T> SubAssign for Duration<T>
whereT: Sub<Output = T> + Copy,
{/// 实现持续时间的减法赋值操作fn sub_assign(&mut self, rhs: Self) {self.set(self.get() - rhs.get());}
}

二、主要组成部分

1. 类型定义
pub type Duration<T> = Quantity<T, NoPrefix, Second>;

+Duration 是 Quantity<T, NoPrefix, Second> 的类型别名

  • T 是数值类型(如 i32, f64 等)

  • NoPrefix 表示没有单位前缀

  • Second 表示时间单位是秒

2. 构造方法

提供了多种创建 Duration 的方法:

  • from_seconds(seconds) - 直接从秒数创建

  • from_minutes(minutes) - 从分钟数转换(×60)

  • from_hours(hours) - 从小时数转换(×3600)

  • from_days(days) - 从天数转换(×86400)

  • from_hms(hours, minutes, seconds) - 从时分秒组合创建

3. 转换方法

可以将 Duration 转换为不同单位表示:

  • as_seconds() - 获取总秒数

  • as_minutes() - 转换为分钟数(÷60)

  • as_hours() - 转换为小时数(÷3600)

  • as_days() - 转换为天数(÷86400)

4. 运算符重载
  • 实现了 AddAssign 和 SubAssign trait,支持 += 和 -= 操作:
duration1 += duration2;  // 相当于 duration1 = duration1 + duration2
duration1 -= duration2;  // 相当于 duration1 = duration1 - duration2

使用示例

// 创建持续时间
let d1 = Duration::from_seconds(30);       // 30秒
let d2 = Duration::from_minutes(1.5);     // 90秒
let d3 = Duration::from_hms(1, 30, 15);   // 1小时30分15秒 = 5415秒// 转换单位
let hours = d3.as_hours();  // 1.504166...小时// 运算符使用
let mut total = Duration::from_seconds(0);
total += d1;
total += d2;

设计特点

  • 类型安全:通过 Quantity 类型确保时间单位的正确性

  • 泛型支持:支持多种数值类型(整数或浮点数)

  • 多种单位转换:方便在不同时间单位间转换

  • 运算符重载:使时间计算更直观

这个 Duration 类型适合需要精确时间计算和单位转换的场景,如科学计算、工程应用或游戏开发等。


文章转载自:

http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://00000000.jLktz.cn
http://www.dtcms.com/wzjs/615858.html

相关文章:

  • 114百事通做网站600潍坊地区网站制作
  • 环保网站 怎么做沟通交流类网站有哪些
  • 博明网站建设哈尔滨网站制作方案定制
  • 会做网站有什么可以做吗简约好看的网站模板
  • 打开一张图片后点击跳转到网站怎么做的百度网页版入口链接
  • 郴州 网站建设wordpress用户数据库
  • 怎样给网站做新闻稿子postfix wordpress
  • 淮南建设网站蓝希菏泽网站建设
  • 小学学校网站建设情况生物科技 网站模板下载
  • 推广员网站怎么做区块链网站开发体app开发
  • 视频网站空间找在家做的兼职上什么网站好
  • 如何维护自己公司网站wordpress点击网页效果
  • 烟台智能建站模板百度联盟点击广告赚钱
  • 哈尔滨建设银行网站建筑方案设计
  • 建商城网站需要多少钱html5 国内网站建设
  • 阜南县城乡建设局官方网站无锡网站建设套餐
  • 福州模板建站定制网站宿州网站建设报价
  • 中国那个公司的网站做的最好看汕头新闻头条最新消息
  • 网站后台如何做产品展示网站建设最好用什么语言
  • 天津百度做网站多少钱镇江vi设计
  • 装修设计网站哪个好用正规网站建设公司多少钱
  • 做家具城网站的意义阜新旅游网站建设
  • 哪个网站是免费的网站文件名优化
  • 怎么查看网站备案琪觅公司网站开发
  • 怎么能自己做网站国外空间租用
  • 美橙互联建站门户网站价格
  • 苏州 网站建设佛山市住房和建设局网站首页
  • 视频直播网站开发与制作wordpress表格图表插件
  • 手机网站php源码免费试用网站源码
  • 中企动力网站建设合同wordpress logo在哪里改