Ejemplo n.º 1
0
        /// <summary>
        /// Convert a <see cref="DateTime"/> object to a relative date (e.g.,
        /// Today, tomorrow, yesterday) string format.
        /// </summary>
        /// <param name="value">The <see cref="DateTime"/> object to convert.</param>
        /// <param name="options">
        /// One of the <see cref="RelativeDateFormatting"/> values.
        /// </param>
        /// <returns>A relative date/time formatted string.</returns>
        public static string ToRelativeDateString(this DateTime value, RelativeDateFormatting options)
        {
            var days = (value.Date - DateTime.Now.Date).Days;

            return(days switch
            {
                0 => String.Format(CultureInfo.CurrentCulture, Strings.RelativeDateFormatStringToday, value),
                1 => Strings.RelativeDateFormatStringTomorrow,
                -1 => Strings.RelativeDateFormatStringYesterday,
                _ when days >= 2 && days <= 5 && options == RelativeDateFormatting.DayNames => value.ToString("dddd", CultureInfo.CurrentCulture),
                _ when days >= 2 && days <= 5 => String.Format(CultureInfo.CurrentCulture, Strings.RelativeDateFormatStringDaysFromNow, days),
                _ when days <= -2 && days >= -5 && options == RelativeDateFormatting.DayNames => value.ToString("dddd", CultureInfo.CurrentCulture),
                _ when days <= -2 && days >= -5 => String.Format(CultureInfo.CurrentCulture, Strings.RelativeDateFormatStringDaysAgo, Math.Abs(days)),
                _ => String.Format(CultureInfo.CurrentCulture, Strings.RelativeDateFormatStringDefault, value)
            });
Ejemplo n.º 2
0
        /// <summary>
        /// Convert a <see cref="DateTime"/> object to a relative date
        /// (e.g., Today, tomorrow, yesterday) string format.
        /// </summary>
        /// <param name="value">The <see cref="DateTime"/> object to convert.</param>
        /// <param name="options">One of the <see cref="RelativeDateFormatting"/> values.</param>
        /// <returns>A relative date/time formatted string.</returns>
        public static string ToRelativeDateString(this DateTime value, RelativeDateFormatting options)
        {
            var    diff = value.Date - DateTime.Now.Date;
            var    days = diff.Days;
            string format;

            switch (days)
            {
            case 0:
                format = String.Format(CultureInfo.CurrentCulture, Strings.RelativeDateFormatStringToday, value);
                break;

            case 1:
                format = Strings.RelativeDateFormatStringTomorrow;
                break;

            case -1:
                format = Strings.RelativeDateFormatStringYesterday;
                break;

            case 2:
            case 3:
            case 4:
            case 5:
                format = options == RelativeDateFormatting.DayNames ? value.ToString("dddd", CultureInfo.CurrentCulture) : String.Format(CultureInfo.CurrentCulture, Strings.RelativeDateFormatStringDaysFromNow, days);
                break;

            case -2:
            case -3:
            case -4:
            case -5:
                format = options == RelativeDateFormatting.DayNames ? value.ToString("dddd", CultureInfo.CurrentCulture) : String.Format(CultureInfo.CurrentCulture, Strings.RelativeDateFormatStringDaysAgo, Math.Abs(days));
                break;

            default:
                format = String.Format(CultureInfo.CurrentCulture, Strings.RelativeDateFormatStringDefault, value);
                break;
            }

            return(format);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Convert a <see cref="DateTime"/> object to a relative date
        /// (e.g., Today, tomorrow, yesterday) string format.
        /// </summary>
        /// <param name="value">The <see cref="DateTime"/> object to convert.</param>
        /// <param name="options">One of the <see cref="RelativeDateFormatting"/> values.</param>
        /// <returns>A relative date/time formatted string.</returns>
        public static string ToRelativeDateString(this DateTime value, RelativeDateFormatting options)
        {
            var diff = value.Date - DateTime.Now.Date;
            var days = diff.Days;
            string format;

            switch (days)
            {
                case 0:
                    format = String.Format(CultureInfo.CurrentCulture, Resources.RelativeDateFormatStringToday, value);
                    break;

                case 1:
                    format = Resources.RelativeDateFormatStringTomorrow;
                    break;

                case -1:
                    format = Resources.RelativeDateFormatStringYesterday;
                    break;

                case 2:
                case 3:
                case 4:
                case 5:
                    format = options == RelativeDateFormatting.DayNames ? value.ToString("dddd", CultureInfo.CurrentCulture) : String.Format(CultureInfo.CurrentCulture, Resources.RelativeDateFormatStringDaysFromNow, days);
                    break;

                case -2:
                case -3:
                case -4:
                case -5:
                    format = options == RelativeDateFormatting.DayNames ? value.ToString("dddd", CultureInfo.CurrentCulture) : String.Format(CultureInfo.CurrentCulture, Resources.RelativeDateFormatStringDaysAgo, Math.Abs(days));
                    break;

                default:
                    format = String.Format(CultureInfo.CurrentCulture, Resources.RelativeDateFormatStringDefault, value);
                    break;
            }

            return format;
        }