using System.Globalization;
public static void Main()
TimeSpan horaInicioTimeSpan;
TimeSpan horaFimTimeSpan;
IFormatProvider formatProviderField = Thread.CurrentThread.CurrentUICulture;
if (formModel.IsDiaInteiro || !TimeSpan.TryParse(formModel.HrInicio, formatProviderField, out horaInicioTimeSpan))
horaInicioTimeSpan = new TimeSpan(00, 00, 00);
if (formModel.IsDiaInteiro || !TimeSpan.TryParse(formModel.HrFinal, formatProviderField, out horaFimTimeSpan))
horaFimTimeSpan = new TimeSpan(59, 59, 59);
var dtInicioFormulario = new DateTimeOffset(formModel.DtInicial.Value.Add(horaInicioTimeSpan));
var dtFinalFormulario = new DateTimeOffset(formModel.DtFinal.Value.Add(horaFimTimeSpan));
Console.WriteLine(dtInicioFormulario + Environment.NewLine + dtFinalFormulario);
public static class formModel
public static bool IsDiaInteiro { get; private set; } = false;
public static DateTime? DtFinal { get; private set; } = new DateTime(2016, 12, 16);
public static DateTime? DtInicial { get; private set; } = new DateTime(2016, 12, 17);
public static string HrInicio { get; private set; } = "09:05:44";
public static string HrFinal { get; private set; } = "17:22:33";