タイトルそのままです。
現在Dateオブジェクト使って試行錯誤しておりますがなかなか思うような数字が出ません。
教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/19 14:41
回答2件
0
Dateを使う事までわかってるならほぼ悩まないと思いますが・・・
現在のDateと予定時間のDateの二つのインスタンスを作成して、それの差を出して(多分ミリ秒で返ってくると思いますが)、それを分に変換すれば良いのではないかと。
リアルタイムに表示させたいのでしたら、それを関数化してSetInterval等で定期的に呼び出せばその時点での残り時間に書き換わりますよね?
でそれが0になったら「時間ですよ!!!」とでも処理してあげれば良いかと。
とりえあず質問者さんがどんなコードを書いてて、どこまでは出来てるけど、ここから先がわかりませんってのを書くべきでは?
投稿2015/05/19 17:45
総合スコア1614
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
lang
1 2var target_Hour=20; 3 4(function (_TargetHours){ 5 var timeObject=new Date(); 6 var DAY=24; 7 var MINUTES=60; 8 var hours=timeObject.getHours(); 9 var minutes=timeObject.getMinutes(); 10 11 var hoursDifference=calculate_hoursDifference(_TargetHours); 12 var minutesDirrerence=MINUTES-minutes; 13 14 function calculate_hoursDifference(_TargetHours){ 15 var hoursDifference; 16 hoursDifference=_TargetHours-hours-1; 17 return 0>hoursDifference ? DAY-hoursDifference : hoursDifference; 18 }; 19 function toMinutes(_Hours){ 20 return _Hours*MINUTES; 21 }; 22 23 var returnMinutes=toMinutes(hoursDifference)+minutesDirrerence; 24 25 console.log(returnMinutes); 26}(target_Hour));
かなりおおざっぱに書きましたが考え方は伝わるかと思います。
当方の確認した限りでは一応動いているかと。
(分指定の辺りにバグの元が隠れていないかと少し不安ですが)
命名規則その他含めかなり酷いのでいい感じにしてください。
(hoursとか同じような単語が出過ぎて可読性が置いてけぼりですし)
現在時刻が仮に12時で指定時刻が11時ならば次の日の時刻を指定しているものとして処理しています。
つまり((24-指定時刻-1))*60+残り何分か)となります。
これが気に入らない場合はエラーメッセージを出すようにすればいいでしょう。
投稿2015/05/20 04:00
総合スコア730
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。