Chcę utworzyć wystąpienie DateTime, które leży 20 minut i 10 sekund w przyszłości. Próbowałem z Time i DateTime w irb, ale nie wydaje się, aby znaleźć sposób, który naprawdę ma sens. Mogę dodawać tylko dni do obiektów DateTime i dodawać tylko sekundy do obiektów Time.Manipulacja czasem w rubinie
Czy nie ma lepszej metody niż konwersja czasu, który chcę dodać w kilka sekund?
Osobiście wolę wypisywać '60 * 60 * 24', aby było to trochę bardziej oczywiste, skąd pochodzi magiczna liczba, nawet jeśli będzie to oczywiście nieco wolniejsze w czasie wykonywania. –
@AndrewMarshall Zgoda, i chyba że ktoś wykonuje miliony razy manipulacje "DateTime", dwa kolejne operacje mnożenia nie są warte * mikrooptymalizacji *. Nawet o tym nie myśl, dopóki nie napotkasz problemu z wydajnością.Nawet lepiej, a może po prostu zadeklarować stałą na początku kodu? 'SECONDS_PER_DAY = 60 * 60 * 24' i użyj tego. To samo można zrobić dla 'MINUTERS_PER_DAY = 60 * 24' i' HOURS_PER_DAY = 24', choć może ta ostatnia nie jest konieczna, ale dobrze jest być konsekwentnym i po prostu wymienić wszystkie. –