fdboost
Version:
Performance enhanced utilities for FoundationDB
34 lines (25 loc) • 934 B
text/coffeescript
AbstractAdapter = require('./abstract')
TypedBuffer = require('../typedbuffer')
EPOCH_DATE = new Date(1900, 0, 1)
class DateTime extends TypedBuffer
module.exports = (encoding) ->
class DateTimeAdapter extends AbstractAdapter
getType: ->
DateTime
loadData: (value) ->
days = ~~((value.getTime() - EPOCH_DATE.getTime()) / (1000 * 60 * 60 * 24))
seconds = value.getHours() * 60 * 60
seconds += value.getMinutes() * 60
seconds += value.getSeconds()
milliseconds = (seconds * 1000) + value.getMilliseconds()
return
getValue: (buffer) ->
days = buffer.readInt32LE( )
milliseconds = buffer.readUInt32LE( + 4)
date = new Date(1900, 0, 1)
date.setDate(date.getDate() + days)
date.setMilliseconds(date.getMilliseconds() + milliseconds)
date