using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

public class PlcDataConvert
{
    public static string FormatDWordSpanToDHMS(uint microseconds, bool includeMilliseconds = false)
    {
        // 1 微秒 = 10 ticks（因为 .NET 中 1 tick = 100 纳秒）
        //long ticks = microseconds * 10L;
        //TimeSpan duration = TimeSpan.FromTicks(ticks);

        // 或者用毫秒方式（可能有精度损失，但通常可接受）：
        TimeSpan ts = TimeSpan.FromMilliseconds(microseconds);

        long totalDays = (long)ts.TotalDays;
        int hours = ts.Hours;
        int minutes = ts.Minutes;
        int seconds = ts.Seconds;

        if (includeMilliseconds)
            return $"{totalDays}.{hours:D2}:{minutes:D2}:{seconds:D2}.{ts.Milliseconds:D3}";
        else
            return $"{totalDays}.{hours:D2}:{minutes:D2}:{seconds:D2}";
    }
}

