teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

調整

2018/11/07 00:40

投稿

yambejp
yambejp

スコア117892

answer CHANGED
@@ -25,4 +25,44 @@
25
25
  time.addHour(1.234);
26
26
  console.log(time.disp());
27
27
 
28
+ ```
29
+
30
+ # 調整
31
+ よく考えたら秒単位でやったほうがすっきりしますね
32
+
33
+ ```javascript
34
+ var mytime=function(str){
35
+ var hms=str.split(":");
36
+ var h=parseInt(hms[0]);
37
+ var m=parseInt(hms[1]|"0");
38
+ var s=parseInt(hms[2]|"0");
39
+ this.time=h*3600+m*60+s;
40
+ this.addSecond=function(n){
41
+ this.time+=n;
42
+ };
43
+ this.addMinute=function(n){
44
+ this.time+=n*60;
45
+ };
46
+ this.addHour=function(n){
47
+ this.time+=n*3600;
48
+ };
49
+ this.disp=function(){
50
+ var minus=this.time<0?"-":"";
51
+ var t=Math.abs(this.time);
52
+ var h=Math.floor(t/3600).toString();
53
+ var m=(100+Math.floor((t%3600)/60)).toString().substr(-2);
54
+ var s=(100+Math.round(t%60)).toString().substr(-2);
55
+ return minus+h+":"+m+":"+s;
56
+ };
57
+ };
58
+ var time=new mytime('21:00');
59
+ console.log(time.disp());
60
+ time.addHour(4.5);
61
+ console.log(time.disp());
62
+ time.addHour(1.234);
63
+ console.log(time.disp());
64
+ time.addHour(-30.2);
65
+ console.log(time.disp());
66
+ time.addHour(4.1);
67
+ console.log(time.disp());
28
68
  ```