3

円を使って時計制御を開発しようとしています。したがって、円が 360 度の場合は 3'O クロック、90 度の場合は 12'O クロックになります。円の角度がある場合、hh:mm 形式で時間を見つけるためにどの式を使用できるかわかりません。

例えば。

9時が180度。3 時は 360 度、12 時は 90 度などです。

4

4 に答える 4

3

これを行うにはもっと簡潔な方法があるかもしれませんが、ここで行う必要があることを示します。

  1. 3 - (1/30) * (角度 mod 360)を使用して、時間の小数値を計算します。
  2. 結果がゼロ未満の場合は、12 を追加します。
  3. ゼロの値を 12 に置き換えて、時間として使用する整数部分を取得します。
  4. 剰余 (ステップ 1 の計算の小数部分) を取り、60 を掛けて分に変換します。
  5. 時間と分をフォーマットし、10 未満の場合は先行ゼロを埋め込み、コロンで結合します。

Java での実装例:

public static String convertAngleToTimeString(float angle) {
    String time = "";
    float decimalValue = 3.0f - (1.0f/30.0f) * (angle % 360);
    if (decimalValue < 0)
        decimalValue += 12.0f;

    int hours = (int)decimalValue;
    if (hours == 0)
        hours = 12;
    time += (hours < 10 ? "0" + hours: hours) + ":";
    int minutes = (int)(decimalValue * 60) % 60; 
    time += minutes < 10 ? "0" + minutes: minutes;
    return time;
}
于 2013-09-27T19:02:05.310 に答える
0

hrs= date +%H #H >> min= date +%M #min >> dim= echo "scale=2; $hrs * 60 + $min" | bc #日 (分) >> dis= echo "scale=2; $dim * 60 + $sec" | bc #日 (秒) >> did= echo "scale=2; $dis / 240" | bc #日 (度) >>

惑星の公転は 240 秒に 1 度です。

私は sumerian-time-sys の作成に取り組んでいます。1 シュメール時間は、現在の 2 HRS または 30 回転度に相当します。60 進法を検索します。楽しむ!

于 2016-12-17T19:31:04.520 に答える