writeNtpTimestamp static method

void writeNtpTimestamp(
  1. ByteData data,
  2. int offset,
  3. DateTime time
)

Writes an NTP 64-bit timestamp into data starting at offset using pure 64-bit integer arithmetic.

Implementation

static void writeNtpTimestamp(ByteData data, int offset, DateTime time) {
  final microsSinceUnix = time.toUtc().microsecondsSinceEpoch;
  final secondsSinceUnix = microsSinceUnix ~/ 1000000;
  final microsRemainder = microsSinceUnix % 1000000;

  final ntpSeconds = (secondsSinceUnix + _ntpEpochOffset) & 0xFFFFFFFF;
  final fractional =
      (((microsRemainder * 0x100000000) + 500000) ~/ 1000000) & 0xFFFFFFFF;

  data.setUint32(offset, ntpSeconds);
  data.setUint32(offset + 4, fractional);
}