Ruby构造日期对象和计算日期间天数差的问题

Python010

Ruby构造日期对象和计算日期间天数差的问题,第1张

我写了个程序 你看一下 不明白的话联系我 有注释

#获取当前的时间

today = Time.new

puts "当前日期:" + today.strftime("%Y-%m-%d %H:%M:%S")#采用格式化输出

#获取指定日期的时间 如 2010-08-30 20:50:01

day = Time.local(2010, 8 , 30 , 20, 50, 1)

puts "指定日期:" + day.strftime("%Y-%m-%d %H:%M:%S")

#获取指定日期的秒数(就是1970年到指定日期的秒数)

sec1 = day.to_i

#同理,获取今天的秒数

sec2 = today.to_i

#秒数求差,同时折合为天数

num = (sec1 - sec2)/(24*60*60)

puts (day.strftime("%Y-%m-%d %H:%M:%S") + "与" + today.strftime("%Y-%m-%d %H:%M:%S") + "相差" + num.to_s + "天")

楼上的回答基本没错。我可以解释一下。

=~ 是ruby里的正则表达式(regex)的匹配符号

"a" =~ [a] 是 true

"a" =~ [b] 是 false

左面是对比不定量,右边是正则表达式,这个可以去具体学习一下

LS的句子里的运用是

unless gets =~ /[a-z]/ = 除非gets里有a-z的小写字母

这个方法会看gets里有没有英文中a-z的小写字母,如果没有就会写出ALL CAPS

除了这个方法,还有另一个方法:

a = "This is a good day!"

b = a.upcase

puts "all upper case" if a == b

这个方式有两个好处。

1. 易懂

2. ruby的upcase函数有多语言支持,不仅仅能处理英文的大小写。

另,你说的a in 'A'..'Z'有语法错误。

in的普遍用法是 for i in 0..10,是让i循环10次每次给它赋予一个不同的值。如果你知道别的语言你就应该知道这是for语句的写法。在这里用来判断语句的大小写不通顺也不能用。