質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

3回答

8499閲覧

DateTime.nowから見て、翌日の◯時というdatetimeを取得するにはTime.zone.tomorrowみたく取得できるのでしょうか?

qaz3330

総合スコア113

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/05/25 13:27

単純に明日というのであれば
Time.zone.tomorrow

でいけるかと思います。

また、指定日時の場合も

Date.new(2015, 1, 1)

みたいなことができます。

しかし、DateTime.nowから見て、翌日の◯時(例えば、翌日の23時)という
のはどのように取るのかわからず困っております。

同様に
DateTime.nowから見て、翌々日の◯時といった応用なども使えるようにしたいです。

どなたかアドバイスいただけないでしょうか?

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

DateTime.now.beginning_of_day で 今日の 0時0分を得て、
あとは、x.day + y.hour で足し算してやればよいとおもいます。

ruby

1$ rails c 2[1] pry(main)> DateTime.now 3=> Thu, 26 May 2016 07:18:41 +0900 4[2] pry(main)> DateTime.now.beginning_of_day 5=> Thu, 26 May 2016 00:00:00 +0900 6[3] pry(main)> DateTime.now.beginning_of_day + 1.day 7=> Fri, 27 May 2016 00:00:00 +0900 8[4] pry(main)> DateTime.now.beginning_of_day + 1.day + 8.hour 9=> Fri, 27 May 2016 08:00:00 +0900 10[5] pry(main)> DateTime.now.beginning_of_day + 2.day + 8.hour 11=> Sat, 28 May 2016 08:00:00 +0900

投稿2016/05/25 22:23

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こうでしょうか?

ruby

1tomorrow = DateTime.now + 1 2hoge = DateTime.new(tomorrow.year,tomorrow.month,tomorrow.day,23,0,0,tomorrow.offset) 3#日本狙い撃ちなら下でも良い 4hoge = DateTime.new(tomorrow.year,tomorrow.month,tomorrow.day,23,0,0,"+0900")

バグや混乱する原因とならないためにも、日本時間の+9:00は基本的に設定した方がいいと思います。

投稿2016/05/25 14:14

編集2016/05/25 14:17
oskbt

総合スコア1895

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

now = Time.now

Date.new(now.year, now.month, now.tomorrow.day, 23)

なんか無理やりな気もするけどこんな感じでいいのでは?

あ、やっぱり分岐がちょーめんどうなことになるか。

修正)

t = Time.now.tomorrow

Date.new(t.year, t.month, t.day, 23)

でした。

投稿2016/05/25 13:57

編集2016/05/25 14:01
realizerS

総合スコア265

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問