private static unsafe void FormatDateTimeMillisecond(byte *pBytes, char *pFormat, int value, int limit, ref int i) { var length = 1; for (var j = i + 1; (j < limit) && (*(pFormat + j) == FormatMillisecond); j++) { length++; } if (length > 3) { throw new FormatException("Invalid format."); } *(pBytes + i++) = (byte)(Num0 + (value / 100)); value = value % 100; if (length > 1) { OperationHelper.DivMod10Signed(value, out var div, out var mod); *(pBytes + i++) = (byte)(Num0 + div); value = mod; } if (length > 2) { *(pBytes + i++) = (byte)(Num0 + value); } }
private static unsafe void FormatDateTimePart(byte *pBytes, char *pFormat, char c, int value, int limit, ref int i) { var length = 1; for (var j = i + 1; (j < limit) && (*(pFormat + j) == c); j++) { length++; } var offset = i + length - 1; for (var j = 0; j < length - 1; j++) { OperationHelper.DivMod10Signed(value, out var div, out var mod); *(pBytes + offset--) = (byte)(Num0 + mod); value = div; } *(pBytes + offset) = (byte)(Num0 + value); i += length; }