Skip to content

Instantly share code, notes, and snippets.

@takoikatakotako
Created January 15, 2017 14:19
Show Gist options
  • Select an option

  • Save takoikatakotako/696ee68f7e443d024a47cb59e6aedad6 to your computer and use it in GitHub Desktop.

Select an option

Save takoikatakotako/696ee68f7e443d024a47cb59e6aedad6 to your computer and use it in GitHub Desktop.
次の29(肉)の日を取得します
require 'date'
#次の29の日を探します。
def niku_search()
now_date = Date.today
if now_date.mday == 29 then
#本日が29の日だった時
print get_date_string(now_date)
puts('今日は29の日ですモー')
elsif now_date.mday<29 then
#本日が29より前だった時
next_29_day = get_date_passage(now_date,29-now_date.mday)
print('次の29の日は'+(next_29_day-now_date).to_i.to_s+'日後の')
puts get_date_string(next_29_day)+'ですモー'
else
#本日が29より後だった時
next_29_day = get_next_29_day(now_date)
print('次の29の日は'+(next_29_day-now_date).to_i.to_s+'日後の')
puts get_date_string(next_29_day)+'ですモー'
end
return
end
#渡された日から経過された日を返す
def get_date_passage(date, day)
return date + day
end
#渡された日達の差を計算する
def get_date_difference(date1, date2)
return date1.year*365* + day
end
#次の月の29の日を取得する
def get_next_29_day(date)
if date.month == 12
#12月の30-31の時、次の肉の日は新年
return Date.new(date.year+1,1,29)
elsif date.leap? && date.month == 1
#1月で、今月がうるう年の時
return Date.new(date.year,date.month+1,29)
elsif date.month == 1
#1月で、今月がうるう年の時ではない時
return Date.new(date.year,3,29)
else
#次の月の29日を取得
return Date.new(date.date.month+1,29)
end
end
#Dateを引数に文字列を返す
def get_date_string(date)
return date.strftime('%Y/%-m/%-d ')
end
if __FILE__ == $0
#次の29の日を探します
niku_search()
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment