ruby数字和日期

44、Ruby 日期、数学与数字类库详解 本文详细介绍了 Ruby 中的日期操作、数学模块以及各种数字类库的使用方法。涵盖 Date、DateTime 类的日期前后移动、组成部分访问和类型转换;Math 模块提供的常用数学函数;以及 Numeric、Integer、Float、Rational、Complex 和 BigDecimal 类的核心功能与常用方法。通过示例代码展示了各类库的实际应用,并讨论了它们在复杂计算和数据处理中的结合使用。最后还提供了注意事项、性能优化建议以及与其他库的整合应用,帮助开发者更高效地处理 Ruby 中的数学与数据操作 阅读详情

#ruby数字和数学运算

##数字方法

0.zero? #true 是否为0

0.0.zero? #true 是否为0

0.nonzero? #false 是否不为0

1.integer? #true 是否为整数

2.even? #true 是否为偶数

1.even? #false 

1.odd? #true 是否为奇数

1.1.ceil #2 进1取整

1.1.floor #1 舍弃取整

4.6.round #5 四舍五入

4.3.round #4

-1.1.to_i #-1 转换为整数

-2.abs #2 绝对值

-2.0 <=> 0 #-1

##Math模块 Math::PI #3.1415... π值

Math.sqrt(25.0) #5 平方根

Math.log10(100.00) #2 以10为底,100的对数

Math.log2(8) #3 以2为底,8的对数

###标准库中的BigDecimal类可以用于替代Float,如果想避免二进制浮点运算带来的舍入误差,它尤其有用:

d = 0.1

4*d - 3*d == d #false

require 'bigdecimal'

d1 = BigDecimal('0.1')

4*d1 - 3*d1 == d1 #true

###随机数: 用全局函数Kernel.rand产生随机数,如果不带参数,它返回一个大于等于0.0,小于等于1.0的伪随机浮点数。如果给定一个整形参数max,它返回大于等于0,小于等于max的伪随机数:

rand #0.964395...

rand(100) #36

##日期和时间

Time.now #2014-10-27 09:16:57 +0800 

Time.new #2014-10-27 09:17:15 +0800 

Time.local 2014, 10, 10 #2014-10-10 00:00:00 +0800 

Time.local 2014, 7, 8, 10, 11, 34 #2014-07-08 10:11:34 +0800 

Time.utc 2014, 7, 8, 10, 11, 34 #2014-07-08 10:11:34 UTC  UTC时间

Time.gm 2014, 7, 8, 10, 11, 34 #2014-07-08 10:11:34 UTC , GMT时间,等同于UTC

t = Time.utc 2000, 12, 31, 23, 59, 59

t.year #2000

t.month #12

t.day #31

t.wday #0 星期,0表示星期1

t.yday #366 一年中第几天

t.hour #23

t.min #59

t.sec #59

t.zone #UTC

values = t.to_a #[59, 59, 23, 31, 12, 2000, 0, 366, false, "UTC"] 

values[5] += 1

Time.utc *values #2001-12-31 23:59:59 UTC 

t.zone #UTC

t.utc? #true

t.localtime #2001-01-01 07:59:59 +0800 

t.zone #CST

t.utc? #false

t.gmtime #2000-12-31 23:59:59 UTC 

t.getlocal #2001-01-01 07:59:59 +0800 

t.getutc #2000-12-31 23:59:59 UTC 

t.sunday? #true

t.monday? #false

t.to_s #"2000-12-31 23:59:59 UTC" 

t.strftime('%Y-%m-%d %H:%M:%S') #"2000-12-31 23:59:59"
1、Ruby编程实用指南与技巧集合 本博客是一份全面的 Ruby 编程实用指南,涵盖了从基础语法到高级技巧的全方位内容。文章详细介绍了 Ruby 在字符串处理、数字运算、日期管理、数组与哈希操作、文件和目录处理等方面的应用,同时深入探讨了对象与类、模块、反射、元编程等高级主题。此外,还涉及数据库交互、网络服务、Web开发框架 Ruby on Rails、任务自动化、并发处理等实际应用技巧。通过示例代码、对比分析和学习路径规划,帮助开发者高效掌握 Ruby 各类编程技巧,提升开发效率与能力。 阅读详情

相关推荐

19、Rails开发:Active Support特性与后续探索

本文详细介绍了Rails开发中Active Support库的核心特性,包括对象序列化、通用扩展方法、枚举与数组操作、字符串增强、数字扩展、时间日期处理等内容,并探讨了后续学习方向如Active Record、Action Controller等。文章还通过实际应用场景展示了这些特性的使用方法,并提供了进阶使用建议。Active Support为Ruby内置类提供了丰富的扩展,极大提升了Rails开发效率。

59

ruby 将字符转转化成时间变量

怎样使用ruby将字符串转化成时间变量呢?非常简单,只需要用到Time.mktime函数即可。 比如一串字符串,2012,12,12,13,38,45 我们将这些字符串转化成2012年12月12日13时38分45秒,只需要这么做: Time.mktime(2012,12,12,13,38,45) => Wed Dec 12 13:38:45 +0800 2012 时区为当地时区,

dazhi_100的专栏 4679

深入探索Ruby中日期和数学类的高级用法

本章深入探讨了Ruby编程语言中日期和数学类库的高级用法。首先,详细讲解了如何使用Date和DateTime类处理日期,包括创建日期实例、进行日期加减、获取日期组件和格式化输出等。随后,介绍了Math模块中提供的各种数学函数,包括三角函数和高级数学运算。最后,探讨了Ruby中的数字类库,涵盖了浮点数、有理数、复数和BigDecimal类,以及它们的精确度和性能特性。

weixin_34581040的博客 498

转:Ruby中处理时间和日期

Ruby中处理时间和日期 所有strftime方法中可用的格式化符号: ===================================================== %a 星期的缩写,如Wed %A 星期的全称,如Wednesday %U 本星期在全年中所属的周数 %W %H 小时(24小时制) %M 分钟 ...

Sink的专栏 513

最小二乘法(看完即会)

其中,X是数据矩阵,每一行是一个数据点,每一列是一个自变量(包括截距项),Y是观测值向量,β是待求的系数向量。为了找到使S最小的a和b的值,我们需要对S求关于a和b的偏导数,并令它们等于零。最小二乘法的数学公式通常用于线性回归问题,其中目标是找到一条直线(或更高维度的超平面),使得这条直线与给定数据点的误差平方和最小。同样地,通过求偏导数和令偏导数等于零,我们可以得到一个线性方程组,解这个方程组可以找到最优的b_0, b_1, …+ b_m*x_m,其中b_0是截距,b_1到b_m是各个自变量的系数。

qlkaicx的博客 2万+

PaddleOCR训练自己的数据

一 、数据准备 采用PPOCRLabel标注自己的数据 PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,内置PP-OCR模型对数据自动标注和重新识别。使用Python3和PyQT5编写,支持矩形框标注和四点标注模式,导出格式可直接用于PaddleOCR检测和识别模型的训练。 1.1 安装PaddlePaddle pip3 install --upgrade pip # 如果您的机器安装的是CUDA9或CUDA10,请运行以下命令安装 python3 -m pip in.

zyb的博客 1万+

Ruby On Rails 日期格式转换

格式化应用实例: puts Time.now.strftime(“%Y-%m-%d %H:%M:%S”) #2018-05-13 15:28:08 puts Time.now.strftime(“%x %I:%M %p”) #05/13/18 03:39 PM 所有strftime方法中可用的格式化符号: %a 星期的缩写,如Wed %A 星期的全称,如Wednesday %U 本星期在全年中所...

JETTY的博客园 1427

Cartographer全局重定位优化:无初始位姿约束的2万平工厂秒级定位实践

本文深入解析了Cartographer在2万平工业场景中的全局重定位优化实践,通过分支定界优化、子图动态加载和多传感器融合等关键技术,实现了无初始位姿约束下的秒级重定位。特别针对大场景下的快速重定位需求,优化后的系统在RK3588平台上表现出色,定位耗时从47秒降至1.8秒,成功率提升至91%,为工业自动化提供了高效解决方案。

rose2的博客 969

北京时间零点取整问题

问题: 取当前北京时间零点整 错误处理: time_t now_timestamp = time(NULL); time_t zero_timestamp = now_time / 86400 * 86400; 原因: time(NULL)返回格林威治时间戳,没考虑北京时间时区问题 问题简单化,举个例子: 取格林威治时间(1970.0.0 23:0:0),对应北京时间为(1970.0.1 7:0...

Mr__Jie的博客 1128

【毕设】基于LoRa的物联网控制器:从原理图到PCB的完整硬件设计指南

本文提供了一份完整的基于LoRa的物联网控制器硬件设计指南,涵盖从系统框图、原理图设计到PCB布局布线的全流程。详细讲解了电源电路、单片机最小系统、信号接口以及LoRa无线模块等核心模块的设计要点与抗干扰技巧,并分享了实用的调试心得,旨在帮助电子、物联网专业学生顺利完成毕业设计,掌握低功耗远距离物联网节点的硬件开发实践。

weixin_42126677的博客 307

别再手动切换了!用SP3485+三极管搞定RS485自动收发电路(附完整原理图)

本文详细介绍了如何利用SP3485芯片和三极管设计RS485自动收发电路,解决传统手动切换带来的IO资源占用和软件复杂度问题。通过原理分析、电路设计拆解和实战注意事项,帮助工程师打造稳定可靠的自动收发通信模块,显著提升系统性能和可靠性。

weixin_26833939的博客 513

Ruby 之一

The Ruby Way --目录结构:   1.字符串     2.数字 3.日期和时间 4.数组

mark007的专栏 90

AI测试实战:手把手教你做LLM(大模型)性能测试「含完整代码」

大模型API性能测试是评估模型服务响应能力、吞吐量和资源效率的关键手段。核心指标包括总响应时间、吐字率、首token延迟、输入/输出tokens数量、QPM等。测试流程涵盖构造负载、并发请求、数据采集和指标计算。优化建议针对吐字率低、首token延迟高、QPM偏低等问题,从模型、硬件、系统等多层面提出解决方案。

blues_C的博客 1431

Ruby for Rails 最佳实践十

第十章 标量对象 一、使用字符串 1. 字符串引用机制概要 记号 单引或双引 示例 输出 ' 单引 'You\'ll have to "escape" single quotes.' You’ll have to “escape” single quotes. "

czc1009的专栏 886

【异常】OpenAI提示内容有误 Invalid prompt: your prompt was flagged as potentially violating our usage policy.

用户需优先调整提示内容,确保符合OpenAI的使用政策。若问题持续,建议结合请求ID和具体代码示例联系官方支持。同时,可参考腾讯云、Microsoft Q&A等平台提供的错误处理实践(如重试机制、日志记录)优化代码健壮性。

奶爸的编程之路,也就一周冷个三天 2080

使用 Ruby 数据结构理解 Yaml 基本语法

其实也无需了解得太深入,但是至少你得知道一个 yaml 文件在Ruby 里加载成 Hash,或者在 Python 里加载成字典以后会是什么样子。 基本语法 1、使用空白字符为文件缩进来表示结构;不过不能使用跳格字符 (TAB)。 2、注解由井字号( # )开始,可以出现在一行中的任何位置,而且范围只有一行(也就是一般所谓的单行注释) 3、每个清单成员以单行表示,并用短杠 + 空白( - )起始。或使用方括号( [ ] ),并用逗号 + 空白( , )分开成员。 4、每个散列表的成员用冒号 + ...

Looking的网页备忘录和个人知识库 1125

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

TwitterCLDR Ruby自定义格式化器开发:3个关键模块与架构深度解析

TwitterCLDR Ruby是一个基于ICU(International Components for Unicode)标准的Ruby国际化库,它利用Common Locale Data Repository(CLDR)数据来格式化日期、数字、货币、复数等国际内容。作为一款强大的国际化工具,TwitterCLDR Ruby不仅提供了丰富的内置格式化功能,还通过优雅的架构设计支持自定义格式化器的

gitblog_00089的博客 467

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TwitterCLDR终极指南:5分钟掌握Ruby国际化开发

你是否曾为多语言应用开发而头疼?不同地区的日期格式、货币符号、数字显示方式千差万别,手动处理这些国际化问题简直是开发者的噩梦。今天,我要为你介绍一个Ruby国际化开发的终极解决方案——TwitterCLDR,这个基于ICU标准的强大工具能让你在5分钟内实现专业的本地化功能。 ## 项目概览与核心价值 **TwitterCLDR** 是Twitter开源的Ruby国际化库,它基于Unicode的

gitblog_01108的博客 443

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Ruby 第二篇 Ruby的构造元素:数据、表达式和

1:数字与表达式 变量是对象的占位符或者是引用2:比较运算符:age = 10 puts "You are age too young" if age < 18 puts "You are age too young" unless age < 18 循环:5.times do puts "Test" end <=> 5.times {puts "Test"}#...

weixin_34194702的博客 154

Ruby 范围(Range)

范围(Range)是Ruby中一个非常有用的概念,它可以简化处理数值和日期序列的编程任务。通过本文的介绍,相信你已经对Ruby中的范围有了深入的了解。在实际开发中,灵活运用范围可以大大提高代码的效率和质量。

froginwe11的博客 269

Ruby JSON Schema Validator核心功能解析:支持Draft 1至Draft 6全版本

Ruby JSON Schema Validator是一款功能强大的JSON Schema验证工具,专为Ruby开发者设计,全面支持JSON Schema从Draft 1到Draft 6的所有版本。它能够帮助开发者轻松验证JSON数据的结构和内容,确保数据符合预设的模式定义,是构建可靠API和数据处理系统的必备工具。 ## 全版本支持:覆盖Draft 1至Draft 6 该验证器的核心优势在于

gitblog_00255的博客 622

ruby学习代码案例

class ChineseNumber Numbers = ['一','二','三','四','五','六','七','八','九','十'] attr :chinese_number def initialize(value) if Numbers.include?(value) @chinese_number =value else raise '数字不正确' end end #转换整数 ...

qq_42672332的博客 296

如何开发twitter-cldr-rb自定义格式化器:完整指南与实用技巧

twitter-cldr-rb是一个基于Ruby实现的ICU(International Components for Unicode)库,它利用公共区域设置数据仓库(Common Locale Data Repository)来格式化日期、复数等内容。本指南将带你了解如何为这个强大的国际化工具开发自定义格式化器,扩展其功能以满足特定需求。 ## 自定义格式化器的基本结构 在twitter-

gitblog_00104的博客 580

TwitterCLDR-RB 国际化格式化器架构深度解析与扩展实践

TwitterCLDR-RB 是基于 Ruby 的 ICU(International Components for Unicode)实现,利用 CLDR(Common Locale Data Repository)为全球应用提供日期、数字、货币等内容的本地化格式化能力。作为企业级国际化解决方案,该项目通过模块化设计实现了高度可扩展的格式化器架构,支持 150+ 语言环境,是 Ruby 生态中功能

gitblog_01058的博客 1101
上一篇: Rails配置public下静态资源的访问
下一篇: Rails在Controller中使用helper方法
CSTO
博客等级 码龄17年 3粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值