0

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 で変更することができます。今度は、テスト ケースを記述してみたり、将来の日付に関係なく、無限の未来がその日付より先にあることを試してみたいと思います。

4

3 に答える 3

2

このプログラムの出力が何の手間もかけずにわかる最速の方法が本当に必要な場合は、オンラインの scala インタープリター (scala 2.8) であるhttp://www.simplyscala.com/を使用できます。コードを編集ボックスに貼り付けて、「評価」をクリックするだけです。次に入力Main.main(Array.empty)して、もう一度「評価する」をクリックします。メインプログラムが評価され、結果が得られます。

次に、本当に scala を学ぶつもりなら、scala での Eclipse/IntelliJ/SBT の使用に関する十分なチュートリアルがウェブ上にあります。良い本も役立つかもしれません。

于 2013-03-07T23:34:57.207 に答える
0

Eclipse では、 Scala ワークシートも使用できます。

Java の日付/時刻の処理は一般的にひどいものと考えられていますが、非常に広く使用されている代替手段として、 Joda-TimeとそのためのScala ラッパーがあります。

于 2013-03-08T11:47:48.233 に答える