using System.Collections;
using System.Globalization;
public static void Main()
string boTimeStamp = "AAAAAAAHVZY=";
string dsHexTimeStamp = "0x00000000000068C3";
var byteArray = ToByteArray(boTimeStamp);
var asString = ToString(byteArray);
Console.WriteLine("BO" + " as byte array: 0x" + asString);
Console.WriteLine("DS" + " as byte array: " + dsHexTimeStamp);
var asInt = BitConverter.ToInt64(byteArray.Reverse<byte>().ToArray(), 0);
Console.WriteLine("BO" + " as int: " + asInt);
var asInt2 = long.Parse(dsHexTimeStamp.Substring(2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
Console.WriteLine("DS" + " as int: " + asInt2);
Console.WriteLine("---");
var dsAppointment = StringToByteArray(dsHexTimeStamp);
var isGreaterThan = asInt2 > asInt;
Console.WriteLine("Comparing " + ToString(dsAppointment) + " with " + asString + " -> incoming appointment is greater than: " + (isGreaterThan ? "YES" : "NO"));
public static byte[] StringToByteArray(string hex)
return System.Text.ASCIIEncoding.ASCII.GetBytes(hex);
private static byte[] ToByteArray(string timeStamp)
string json = "{ \"Timestamp\": \"" + timeStamp + "\"}";
var person = JsonConvert.DeserializeObject<Test>(json);
private static string ToString(byte[] timeStamp)
var abc = BitConverter.ToString(timeStamp).Replace("-", "");
internal static class ArrayExtensions
public static int Compare(this byte[] b1, byte[] b2)
if (b1 == null && b2 == null)
switch (BitConverter.IsLittleEndian)
ulong b1AsLittle = BitConverter.ToUInt64(b1.Reverse().ToArray(), 0);
ulong b2AsLittle = BitConverter.ToUInt64(b2.Reverse().ToArray(), 0);
return b1AsLittle.CompareTo(b2AsLittle);
ulong b1AsBig = BitConverter.ToUInt64(b1, 0);
ulong b2AsBig = BitConverter.ToUInt64(b2, 0);
return b1AsBig.CompareTo(b2AsBig);