22 lines
806 B
C#
22 lines
806 B
C#
using System.Globalization;
|
|
using Avalonia.Data.Converters;
|
|
|
|
namespace ClaudeDo.Ui.Converters;
|
|
|
|
public sealed class TimeSpanToHhmmConverter : IValueConverter
|
|
{
|
|
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) =>
|
|
value is TimeSpan t ? $"{t.Hours:00}:{t.Minutes:00}" : "07:00";
|
|
|
|
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
|
{
|
|
if (value is not string s) return new TimeSpan(7, 0, 0);
|
|
var parts = s.Split(':');
|
|
if (parts.Length == 2 &&
|
|
int.TryParse(parts[0], out var h) && h is >= 0 and <= 23 &&
|
|
int.TryParse(parts[1], out var m) && m is >= 0 and <= 59)
|
|
return new TimeSpan(h, m, 0);
|
|
return new TimeSpan(7, 0, 0);
|
|
}
|
|
}
|