Math と日付
- Mathはjsの組み込みオブジェクトで、演算に役立つメソッドがたくさん用意されています。
- Dateはjsの組み込みオブジェクトで、それを操作するためのメソッドがたくさん用意されています。
Math
- 余計なものは何もなく、数字を操作する方法がたくさんあるだけです
random
- Math.random() このメソッドを使用して、0 から 1 までの乱数を生成します。
- 実行ごとに異なる数値が生成されますが、0から1の間でなければなりません。
- その結果、0は含まれますが、1は含まれません。
var num = Math.random()
console.log(num) // 乱数を取得する
round
- Math.round() は10進数を整数に変換します。
var num = 10.1
console.log(Math.round(num)) // 10
var num2 = 10.6
console.log(Math.round(num2)) // 11
abs
- Math.abs() は数値の絶対値を返します。
var num = -10
console.log(math.abs(num)) // 10
ceil
- Math.ceil()は10進数を取った整数です。
var num = 10.1
console.log(Math.ceil(num)) // 11
var num2 = 10.9
console.log(Math.ceil(num2)) // 11
floor
- Math.floor() は、10進数を加算する整数です。
var num = 10.1
console.log(Math.floor(num)) // 10
var num2 = 10.9
console.log(Math.floor(num2)) // 10
max
- Math.max() は、渡された数値のうち最大のものを取得します。
console.log(Math.max(1, 2, 3, 4, 5)) // 5
min
- Math.min() は、渡された数値の中で最も小さい数値を取得します。
console.log(Math.min(1, 2, 3, 4, 5)) // 1
PI
- Math.PIはπの値を取得し、それは3.1415926....
console.log(Math.PI) // 3.89793
- コンピュータの精度上、小数点以下15桁までしか計算できません。
すうちかほうしき
- toString() メソッドは、数値を文字列に変換する際に10進数を返します。
- 構文:toString(変換したい文字列)
var num = 100
console.log(num.toString(2)) //
console.log(num.toString(8)) // 144
console.log(num.toString(16)) // 64
- parseInt () メソッドは、文字列を10進数への2進数変換の数値として文字列を数値にすることができます。
- 文法:
parseInt()
var str = 100
console.log(parseInt(str, 8)) // 8進数を10進数に変換すると、次のようになる。
console.log(parseInt(str, 16)) // 16進数を10進数に変換し、その結果を得るように
console.log(parseInt(str, 2)) // 4 100を2進数として10進数に変換して結果を得る。
Date
- jsは、時刻を取得するための組み込みコンストラクタを提供しています。
new Date()
- new Date() は、デフォルトではパラメータなしで現在の時刻を返します。
var time = new Date()
console.log(time) // 現在時刻 Fri Mar:11:23 GMT+0800 (日本標準時)
- new Date() は、パラメータを渡す際に指定した時刻を取得します。
var time = new Date(' ')
console.log(time) // Sun Mar : GMT+0800 (日本標準時)
- new Date() に渡すパラメータには、さまざまな状況が考えられます。
1.2つの数字(最初の数字は年、2番目の数字は月)を渡します。
var time = new Date() // 月は0から数えられ、0は1月、11は12月を意味する。
console.log(time) // Tue Jan :00:00 GMT+0800 (日本標準時)
2.3つの数字を渡します。最初の2つは変更せず、3つ目は1~31までの月日を示します。
var time = new Date()
console.log(time) // Sat Jan :00:00 GMT+0800 (日本標準時)
3.4つの数字を渡します。最初の3つは変更せず、4つ目は時刻を示し、0から23まで。
var time = new Date(, 22)
console.log(time) // Sat Jan :00:00 GMT+0800 (日本標準時)
4.5つの数字を渡します。最初の4つはそのままで、5番目は0から59までの分数を示します。
var time = new Date(, 22, 33)
console.log(time) // Sat Jan :33:00 GMT+0800 (日本標準時)
5.6つの数字を渡します。最初の5つはそのままで、6つ目は0から59までの分の秒数を示します。
var time = new Date(, )
console.log(time) // Sat Jan :33:55 GMT+0800 (日本標準時)
6, 入力文字列の形式
console.log(new Date('2019'))
// Tue Jan :00:00 GMT+0800 (日本標準時)
console.log(new Date(''))
// Fri Feb :00:00 GMT+0800 (日本標準時)
console.log(new Date(''))
// Sun Feb :00:00 GMT+0800 (日本標準時)
console.log(new Date(' 13:'))
// Sun Feb :00:00 GMT+0800 (日本標準時)
console.log(new Date(' 13:13:'))
// Sun Feb :13:00 GMT+0800 (日本標準時)
console.log(new Date(' '))
// Sun Feb :13:13 GMT+0800 (日本標準時)
日付文字列を指定された内容に整形します。
- たとえば、次のような文字列が得られます。
Sun Feb :13:13 GMT+0800 (日本標準時)
- 日付で年を指しているので、文字列をインターセプトしてそれを取得します。
- しかし現在、jsは指定された
getFullYear
- getFullYear() メソッドは、指定した文字列内の年を取得します。
var time = new Date(, )
console.log(time.getFullYear()) // 2019
月
- getMonth() メソッドは、指定した文字列のどの月かを取得します。
var time = new Date(, )
console.log(time.getMonth()) // 3
- ここで注意です。
- 月数は0から数えます。
- 0なら1月、1なら2月、というように。
getDate
- getDate() メソッドは、指定した文字列がどの日にあたるのかを取得します。
var time = new Date(, )
console.log(time.getDate()) // 3
getHours
- getHours() メソッドは、指定した文字列内の時間を取得します。
var time = new Date(, )
console.log(time.getHours()) // 8
分
- getMinutes() メソッドは、指定された文字列内の分を取得します。
var time = new Date(, )
console.log(time.getMinutes()) // 0
getSeconds
- getSeconds() メソッドは、指定した文字列内の秒を取得します。
var time = new Date(, )
console.log(time.getSeconds()) // 22
getDay
- getDay() メソッドは、指定した文字列の曜日を取得します。
var time = new Date(, )
console.log(time.getDay()) // 1
getTime
- getTime() メソッドは、実行時刻からグリニッジ標準時までのミリ秒数を取得します。
var time = new Date(, )
console.log(time.getTime()) // 000
時差を取得
- とは、2つの時点の時間差を求めることです。
- jsの時間から直接引くことはできません。
- 特別な取り扱いが必要
- プログラミングの世界には、1970年1月1日0時0分0秒という特別な時間があります。
- この時間をグリニッジ標準時と呼びます。
- グリニッジ標準時の数字は0です。
- グリニッジ標準時から1ミリ秒経過するごとに、数値は+1されます。
- そのため、任意の時間ノードのグリニッジ標準時までのミリ秒数を取得することが可能です。
- 2つの時点間のミリ秒数は、2つのミリ秒を互いに引くことで得られます。
- このミリ秒数を渡すと、正確な時間が表示されます。
時間差の計算
- 例えば、2019-01-01 00:00:00と2019-01-03 04:55:34の時差を計算します。
1、最初にグリニッジ標準時のミリ秒に時間の2点を取得します。
var time1 = new Date(' ')
var time2 = new Date(' ')
time1 = time1.getTime()
time2 = time2.getTime()
console.log(time1) // 000
console.log(time2) // 000
2.2つの時間を引いて、2つの時点間のミリ秒数を求めます。
var differenceTime = time2 - time1
console.log(differenceTime) //
2つの時点間のミリ秒数が計算されます。
3.計算されたミリ秒を時間に変換
- 何日か考えてみましょう。
- 1日は1000×60×60×24ミリ秒だと思っていました。
- ミリ秒の合計を1日のミリ秒数で割って、何日あるかを求めます。
var time1 = new Date(' ')
var time2 = new Date(' ')
time1 = time1.getTime()
time2 = time2.getTime()
var differenceTime = time2 - time1
// 日数を計算する
var day = differenceTime / ( * 24) // 2.2963
day = Math.ceil(day) // 2
日数は小数で求めるので、切り捨てると整数日数になります。
- differenceTimeを使って2日分のミリ秒を差し引くと、1日分のミリ秒が足りません。
- 1日に足りないミリ秒数を使って、何時間あるかを計算します。
- 1時間は1000×60×60ミリ秒ですから。
- 1時間のミリ秒数を1日のミリ秒数で割ると、1時間の時間数になります。
var time1 = new Date(' ')
var time2 = new Date(' ')
time1 = time1.getTime()
time2 = time2.getTime()
var differenceTime = time2 - time1
// 日数を計算する
var day = differenceTime / ( * 24) // 2.2963
day = Math.floor(day) // 2
// 全体の時間の数を計算する
var afterHours = differenceTime - ( * 24 * 2)
var hours = afterHours / ()
hours = Math.floor(hours) // 4
先ほどと同じ理由で、切り捨てが必要です
- 同様に、afterHours - 4時間に含まれるミリ秒数、残りは1時間に足りないミリ秒数です。
- ミリ秒単位で1時間より何分短いかを計算します。
- 1分は1000×60ミリ秒ですから。
- 1時間のミリ秒数を1分のミリ秒数で割ると分数になります。
var time1 = new Date(' ')
var time2 = new Date(' ')
time1 = time1.getTime()
time2 = time2.getTime()
var differenceTime = time2 - time1
// 日数を計算する
var day = differenceTime / ( * 24) // 2.2963
day = Math.floor(day) // 2
// 全体の時間の数を計算する
var afterHours = differenceTime - ( * 24 * 2)
var hours = afterHours / ()
hours = Math.floor(hours) // 4
// 分数を計算する
var afterMinutes = afterHours - ( * 4)
var minutes = afterMinutes / ()
minutes = Math.floor(minutes) // 55
- 同じ意味で、秒数も計算してください。
var time1 = new Date(' ')
var time2 = new Date(' ')
time1 = time1.getTime()
time2 = time2.getTime()
var differenceTime = time2 - time1
// 日数を計算する
var day = differenceTime / ( * 24) // 2.2963
day = Math.floor(day) // 2
// 全体の時間の数を計算する
var afterHours = differenceTime - ( * 24 * 2)
var hours = afterHours / ()
hours = Math.floor(hours) // 4
// 分数を計算する
var afterMinutes = afterHours - ( * 4)
var minutes = afterMinutes / ()
minutes = Math.floor(minutes) // 55
// 秒数を計算する
var afterSeconds = afterMinutes - ()
var seconds = afterSeconds / 1000
seconds = Math.floor(seconds) // 34
- 最後に、同じように整数秒を引くと、残るのはミリ秒です。
var time1 = new Date(' ')
var time2 = new Date(' ')
time1 = time1.getTime()
time2 = time2.getTime()
var differenceTime = time2 - time1
// 日数を計算する
var day = differenceTime / ( * 24) // 2.2963
day = Math.floor(day) // 2
// 全体の時間の数を計算する
var afterHours = differenceTime - ( * 24 * 2)
var hours = afterHours / ()
hours = Math.floor(hours) // 4
// 分数を計算する
var afterMinutes = afterHours - ( * 4)
var minutes = afterMinutes / ()
minutes = Math.floor(minutes) // 55
// 秒数を計算する
var afterSeconds = afterMinutes - ()
var seconds = afterSeconds / 1000
seconds = Math.floor(seconds) // 34
// ミリ秒数を計算する
var milliSeconds = afterSeconds - () // 0
- 最後に結果を出力するだけです。
document.write(' ')
document.write(day + ' ' + hours + ' ' + minutes + ' ' + seconds + ' ' + milliSeconds + ' ')