Scala が時間と日付を処理する方法を練習するためにこのコードを試してみたい場合は、新しい Scala アプリケーションを作成するか、Eclipse で新しい Scala クラスを作成する必要があります。
sealed abstract class SmartTime extends Ordered[SmartTime] { x =>
def compare(y: SmartTime) = {
x match {
case InfiniteFuture => 1
case InfinitePast => -1
case ConcreteTime(x) =>
y match {
case InfiniteFuture => -1
case InfinitePast => 1
case ConcreteTime(y) => x compare y
}
}
}
}
case class ConcreteTime(t: Long) extends SmartTime
case object InfiniteFuture extends SmartTime
case object InfinitePast extends SmartTime
object Main {
def main(args: Array[String]): Unit = {
val y = ConcreteTime(100)
val z = ConcreteTime(10)
val x = InfiniteFuture
val p = InfinitePast
println(Vector(y, z, x, p).sortWith(_ < _))
}
}
https://softwareengineering.stackexchange.com/questions/164843
Python、Java、および C++ の日付、カレンダー、および時刻の処理を試してみましたが、どちらもあまり良くないと思いました。Python は、タイムスタンプと timedelta を使用して必要なものを比較的簡単に指定できるため、最適でしたが、Python では使用する必要のない Calendar オブジェクトを強制的に使用するよう Java によって混乱させられたと思います。今度は、Scala でタイムスタンプと時刻を処理して、Scala を学びたいと思います。上記のコードが投稿されたので、試してみたいと思います。手伝って頂けますか?
コードを実行して Eclipse で変更することができます。今度は、テスト ケースを記述してみたり、将来の日付に関係なく、無限の未来がその日付より先にあることを試してみたいと思います。