public static bool TryParse( string value, string format, DateTime currentDate, CultureInfo cultureInfo, out DateTime result )
{
bool success = false;
result = currentDate;
if( string.IsNullOrEmpty( value ) || string.IsNullOrEmpty( format ) )
return false;
var dateTimeString = ComputeDateTimeString( value, format, currentDate, cultureInfo ).Trim();
if( !String.IsNullOrEmpty( dateTimeString ) )
success = DateTime.TryParse( dateTimeString, cultureInfo.DateTimeFormat, DateTimeStyles.None, out result );
if( !success )
result = currentDate;
return success;
}