[RUBY] Wie man nur die Zeit mit Rails vergleicht (von welcher Zeit bis zu welcher Zeit, so etwas wie)

Hintergrund des Problems

Wie schreibt man so etwas, das spät abends geöffnet ist und am nächsten Tag von 23:00 bis 5:00 Uhr um 15% zunimmt? Die Geschichte. Ich möchte ein gutes Urteil über die Bedingung "23:00 bis 5:00 am nächsten Tag" abgeben.

Lösungen

Wenn Sie versuchen, nach Zeittyp zu vergleichen, ist es schwierig, die Datumsinformationen einzugeben, sodass Sie nur den Zeitteil mit "strftime" und "to_i" vergleichen können.

def late_time?(time)
  num = time.strftime('%H%M').to_i
  [*0..459, *2300..2359].include?(num)
end

target_time = Time.zone.parse('2020/9/1 23:00')
p late_time?(target_time) #=> true

target_time = Time.zone.parse('2020/9/2 0:00')
p late_time?(target_time) #=> true

target_time = Time.zone.parse('2020/9/2 4:59')
p late_time?(target_time) #=> true

target_time = Time.zone.parse('2020/9/2 5:00')
p late_time?(target_time) #=> false

target_time = Time.zone.parse('2020/9/2 6:00')
p late_time?(target_time) #=> false

target_time = Time.zone.parse('2020/9/2 22:59')
p late_time?(target_time) #=> false

Recommended Posts

Wie man nur die Zeit mit Rails vergleicht (von welcher Zeit bis zu welcher Zeit, so etwas wie)
[Rails] Lesen der vom Bildschirm hochgeladenen XML-Datei im Hash-Typ
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
Großschreibung nur des angegebenen Bereichs mit Teilzeichenfolge. (Verwendung von Teilzeichenfolgen)
[Mit Backtricks] So stellen Sie React to the simple Rails vor
[Rails] Wie man Kaminari mit Slim einführt und das Design ändert
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
[Schienen] Verwendung der Kartenmethode
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
So erstellen Sie eine Rails 6-Umgebung mit Docker
So dekorieren Sie CSS auf Rails6 form_with (Hilfs-) Optionsfeldern
So debuggen Sie die Verarbeitung im Ruby on Rails-Modell nur mit der Konsole
[Rails] So wenden Sie das in der Hauptanwendung verwendete CSS mit Administrate an
[Rails] So lösen Sie die Zeitverzögerung von created_at nach der Speichermethode
[Ruby on Rails] So melden Sie sich nur mit Ihrem Namen und Passwort mit dem Gem-Gerät an
[Rails] So bestimmen Sie das Ziel anhand von "Rails-Routen"
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
So verknüpfen Sie Rails6 Vue (aus dem Umgebungsbau)
[Rails6] So verbinden Sie die von Scaffold generierte Buchungsfunktion mit der von devise generierten Benutzerfunktion
[Schienen] So registrieren Sie mehrere Datensätze in der Zwischentabelle mit einer Zuordnung von vielen zu vielen
So implementieren Sie eine ähnliche Funktion in Rails
Ich möchte mit Firestore von Rails spielen
[Rails] So bedienen Sie die in der Hauptanwendung verwendete Hilfsmethode mit Administrate
So erstellen Sie eine API mit GraphQL und Rails
Ich möchte nur die Zeit aus Zeittypdaten abrufen ...! [Strftime] * Zusätzliche Hinweise
[Rails] So erstellen Sie eine Umgebung mit Docker
Vereinheitlichen Sie die Zeitzone der Rails-App mit der japanischen Zeit
Versuchen Sie, das gemeinsame Layout mit Schienen zusammenzufassen
So überprüfen Sie Rails-Befehle im Terminal
[Rails] So konvertieren Sie die UC-Zeitanzeige in die japanische Zeitanzeige
So löschen Sie den dem Benutzer zugeordneten Tweet, wenn Sie ihn gleichzeitig löschen
[Grobe Erklärung] So trennen Sie den Betrieb der Produktionsumgebung und der Entwicklungsumgebung mit Rails
So löschen Sie untergeordnete Elemente, die gleichzeitig einem übergeordneten Element zugeordnet sind
[Rails] Lösung, wenn bei Verwendung von Capybara mit Rspec der Fehler "undefined method` visit '" angezeigt wird
So implementieren Sie UICollectionView mit Code nur in Swift
So ändern Sie die Aktion mit mehreren Senden-Schaltflächen
Was tun, wenn der Rails-Server nicht gestartet werden kann?
So implementieren Sie eine nette Funktion in Ajax mit Rails
So pushen Sie mit Rails entwickelte Apps an Github
So löschen Sie ein mit Rails erstelltes new_record-Objekt
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
[Ruby on Rails] So ändern Sie den Spaltennamen
So generieren Sie manuell ein JWT mit Knock in Rails
[Rails] Ich weiß nicht, wie ich das Modell verwenden soll ...
[Rails] So ändern Sie den Spaltennamen der Tabelle
Organisierte schrittweise Interaktion mit dem JDK
So geben Sie einen Standard aus einem Array mit for Each aus
[So fügen Sie ein Video mit Rails in haml ein]
[Rails] Umgang mit URL-Änderungen nach dem Rendern
So laden Sie Bilder von AWS S3 herunter (Rails, Carrierwave)
Abfragen von Arrays in jsonb mit Rails + postgres