Created
January 15, 2017 14:19
-
-
Save takoikatakotako/696ee68f7e443d024a47cb59e6aedad6 to your computer and use it in GitHub Desktop.
次の29(肉)の日を取得します
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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