示例#1
1
 // ----------------------------------------------------------------------
 public TimeFormatter( CultureInfo culture = null,
     string contextSeparator = "; ", string startEndSeparator = " - ",
     string durationSeparator = " | ",
     string dateTimeFormat = null,
     string shortDateFormat = null,
     string longTimeFormat = null,
     string shortTimeFormat = null,
     DurationFormatType durationType = DurationFormatType.Compact,
     bool useDurationSeconds = false,
     bool useIsoIntervalNotation = false)
 {
     if ( culture == null )
     {
         culture = CultureInfo.CurrentCulture;
     }
     this.culture = culture;
     listSeparator = culture.TextInfo.ListSeparator;
     this.contextSeparator = contextSeparator;
     this.startEndSeparator = startEndSeparator;
     this.durationSeparator = durationSeparator;
     this.dateTimeFormat = dateTimeFormat;
     this.shortDateFormat = shortDateFormat;
     this.longTimeFormat = longTimeFormat;
     this.shortTimeFormat = shortTimeFormat;
     this.durationType = durationType;
     this.useDurationSeconds = useDurationSeconds;
     this.useIsoIntervalNotation = useIsoIntervalNotation;
 }
        }         // TimeFormatter

        // ----------------------------------------------------------------------
        public TimeFormatter(CultureInfo culture             = null,
                             string contextSeparator         = "; ", string startEndSeparator = " - ",
                             string durationSeparator        = " | ",
                             string dateTimeFormat           = null,
                             string shortDateFormat          = null,
                             string longTimeFormat           = null,
                             string shortTimeFormat          = null,
                             DurationFormatType durationType = DurationFormatType.Compact,
                             bool useDurationSeconds         = false,
                             bool useIsoIntervalNotation     = false)
        {
            if (culture == null)
            {
                culture = CultureInfo.CurrentCulture;
            }
            this.culture                = culture;
            listSeparator               = culture.TextInfo.ListSeparator;
            this.contextSeparator       = contextSeparator;
            this.startEndSeparator      = startEndSeparator;
            this.durationSeparator      = durationSeparator;
            this.dateTimeFormat         = dateTimeFormat;
            this.shortDateFormat        = shortDateFormat;
            this.longTimeFormat         = longTimeFormat;
            this.shortTimeFormat        = shortTimeFormat;
            this.durationType           = durationType;
            this.useDurationSeconds     = useDurationSeconds;
            this.useIsoIntervalNotation = useIsoIntervalNotation;
        }         // TimeFormatter
        } // GetDuration

        // ----------------------------------------------------------------------
        public string GetDuration(TimeSpan timeSpan, DurationFormatType durationFormatType)
        {
            switch (durationFormatType)
            {
            case DurationFormatType.Detailed:
                int days    = (int)timeSpan.TotalDays;
                int hours   = timeSpan.Hours;
                int minutes = timeSpan.Minutes;
                int seconds = UseDurationSeconds ? timeSpan.Seconds : 0;
                return(GetDuration(0, 0, days, hours, minutes, seconds));

            default:
                return(UseDurationSeconds ?
                       string.Format("{0}.{1:00}:{2:00}:{3:00}", timeSpan.Days, timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds) :
                       string.Format("{0}.{1:00}:{2:00}", timeSpan.Days, timeSpan.Hours, timeSpan.Minutes));
            }
        } // GetDuration
        }                                         // TimeFormatter

        // ----------------------------------------------------------------------
        public TimeFormatter(CultureInfo culture              = null,
                             string contextSeparator          = "; ", string startEndSeparator = " - ",
                             string durationSeparator         = " | ",
                             string dateTimeFormat            = null,
                             string shortDateFormat           = null,
                             string longTimeFormat            = null,
                             string shortTimeFormat           = null,
                             DurationFormatType durationType  = DurationFormatType.Compact,
                             bool useDurationSeconds          = false,
                             bool useIsoIntervalNotation      = false,
                             string durationItemSeparator     = " ",
                             string durationLastItemSeparator = " ",
                             string durationValueSeparator    = " ",
                             string intervalStartClosed       = "[",
                             string intervalStartOpen         = "(",
                             string intervalStartOpenIso      = "]",
                             string intervalEndClosed         = "]",
                             string intervalEndOpen           = ")",
                             string intervalEndOpenIso        = "[")
        {
            if (culture == null)
            {
                culture = CultureInfo.CurrentCulture;
            }
            this.culture                   = culture;
            listSeparator                  = culture.TextInfo.ListSeparator;
            this.contextSeparator          = contextSeparator;
            this.startEndSeparator         = startEndSeparator;
            this.durationSeparator         = durationSeparator;
            this.durationItemSeparator     = durationItemSeparator;
            this.durationLastItemSeparator = durationLastItemSeparator;
            this.durationValueSeparator    = durationValueSeparator;
            this.intervalStartClosed       = intervalStartClosed;
            this.intervalStartOpen         = intervalStartOpen;
            this.intervalStartOpenIso      = intervalStartOpenIso;
            this.intervalEndClosed         = intervalEndClosed;
            this.intervalEndOpen           = intervalEndOpen;
            this.intervalEndOpenIso        = intervalEndOpenIso;
            this.dateTimeFormat            = dateTimeFormat;
            this.shortDateFormat           = shortDateFormat;
            this.longTimeFormat            = longTimeFormat;
            this.shortTimeFormat           = shortTimeFormat;
            this.durationType              = durationType;
            this.useDurationSeconds        = useDurationSeconds;
            this.useIsoIntervalNotation    = useIsoIntervalNotation;
        } // TimeFormatter
示例#5
0
 // ----------------------------------------------------------------------
 public string GetDuration( TimeSpan timeSpan, DurationFormatType durationFormatType )
 {
     switch ( durationFormatType )
     {
         case DurationFormatType.Detailed:
             int days = (int)timeSpan.TotalDays;
             int hours = timeSpan.Hours;
             int minutes = timeSpan.Minutes;
             int seconds = UseDurationSeconds ? timeSpan.Seconds : 0;
             return GetDuration( 0, 0, days, hours, minutes, seconds );
         default:
             return UseDurationSeconds ?
                 string.Format( "{0}.{1:00}:{2:00}:{3:00}", timeSpan.Days, timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds ) :
                 string.Format( "{0}.{1:00}:{2:00}", timeSpan.Days, timeSpan.Hours, timeSpan.Minutes );
     }
 }