ruby 连続した日付をカウントする
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 连続した日付をカウントする相关的知识,希望对你有一定的参考价值。
require 'active_support'
require 'active_support/core_ext'
current = Date.current.tomorrow
posted_days = [
current.advance(days: 1),
current.advance(days: 2),
current.advance(days: 3),
# - this day, not posted -
current.advance(days: 5),
current.advance(days: 6),
current.advance(days: 7),
current.advance(days: 8),
# - this day, not posted -
# - this day, not posted -
current.advance(days:10),
current.advance(days:11),
current.advance(days:12),
current.advance(days:13),
current.advance(days:14),
current.advance(days:15),
# - this day, not posted -
current.advance(days:17)
]
class StreakDays
def initialize(posted_days)
@posted_days = posted_days
@count_stock = [0]
calc_continuation_days
end
def longest_streak
@count_stock.max
end
private
def calc_continuation_days
count_stock = [0]
current = @posted_days.first
@posted_days.each do |posted_day|
if days_streak?(current, posted_day)
count_stock[-1] += 1
else
count_stock << 1
end
current = posted_day
end
@count_stock = count_stock
end
def days_streak?(a, b)
date_distance(a, b) == 1
end
def date_distance(current, next_day)
(current - next_day).to_i.abs
end
end
s = StreakDays.new(posted_days)
p s.longest_streak # => 6
以上是关于ruby 连続した日付をカウントする的主要内容,如果未能解决你的问题,请参考以下文章
javascript [日付加算]日付に时间を加算した日付を返します。加算する値を省略すると,日付単位で加算します。
swift Swiftでは++が使えないので,その代わりに计数変数をカウントアップする关数で代用#minna_de_swift
html jQuery的で入力文字数をカウント
html Awesomium。ボタン押したらカウント上がっていく感じの。
python もしかしたら,今日の正しい日付を知りたいという需要があるかもしれないという気持ちから,Python-fireで正しい今日の日付を所得するスクリプトを书いてみました。日々の精进が大切ですね
ruby 缲り返し处理の中でカウンターを使う,カウンターの初期値を指定する