コード例 #1
0
ファイル: DateTimeExtensions.cs プロジェクト: axxu/corefxlab
        public static DateTimeOffset Add(this DateTime dateTime, TimeSpan timeSpan, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
        {
            var utc = dateTime.Kind == DateTimeKind.Unspecified
                ? resolver.Invoke(dateTime, timeZone).UtcDateTime
                : dateTime.ToUniversalTime();

            var dt = utc.Add(timeSpan);
            return TimeZoneInfo.ConvertTime(dt, timeZone);
        }
コード例 #2
0
 public static DateTimeOffset AddYears(this DateTimeOffset dateTimeOffset, int years, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return AddByDate(dateTimeOffset, dt => dt.AddYears(years), timeZone, resolver);
 }
コード例 #3
0
 public static DateTimeOffset AddMonths(this DateTimeOffset dateTimeOffset, int months, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return AddByDate(dateTimeOffset, dt => dt.AddMonths(months), timeZone, resolver);
 }
コード例 #4
0
 private static DateTimeOffset AddByDate(DateTimeOffset dateTimeOffset, Func<DateTime, DateTime> operation, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     var dto = TimeZoneInfo.ConvertTime(dateTimeOffset, timeZone);
     var dt = operation.Invoke(dto.DateTime);
     return resolver.Invoke(dt, timeZone);
 }
コード例 #5
0
        public static DateTimeOffset Add(this DateTime dateTime, TimeSpan timeSpan, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
        {
            var utc = dateTime.Kind == DateTimeKind.Unspecified
                ? resolver.Invoke(dateTime, timeZone).UtcDateTime
                : dateTime.ToUniversalTime();

            var dt = utc.Add(timeSpan);

            return(TimeZoneInfo.ConvertTime(dt, timeZone));
        }
コード例 #6
0
 public static DateTimeOffset AddHours(this DateTime dateTime, double hours, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return(dateTime.Add(TimeSpan.FromHours(hours), timeZone, resolver));
 }
コード例 #7
0
        private static DateTimeOffset AddByDate(DateTime dateTime, Func <DateTime, DateTime> operation, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
        {
            if (dateTime.Kind != DateTimeKind.Unspecified)
            {
                dateTime = TimeZoneInfo.ConvertTime(dateTime, timeZone);
            }

            var result = operation.Invoke(dateTime);

            return(resolver.Invoke(result, timeZone));
        }
コード例 #8
0
 public static DateTimeOffset Subtract(this DateTime dateTime, TimeSpan timeSpan, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return(dateTime.Add(timeSpan.Negate(), timeZone, resolver));
 }
コード例 #9
0
ファイル: DateTimeExtensions.cs プロジェクト: axxu/corefxlab
 public static DateTimeOffset AddDays(this DateTime dateTime, int days, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return AddByDate(dateTime, dt => dt.AddDays(days), timeZone, resolver);
 }
コード例 #10
0
ファイル: DateTimeExtensions.cs プロジェクト: axxu/corefxlab
 public static DateTimeOffset Subtract(this DateTime dateTime, TimeSpan timeSpan, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return dateTime.Add(timeSpan.Negate(), timeZone, resolver);
 }
コード例 #11
0
ファイル: DateTimeExtensions.cs プロジェクト: axxu/corefxlab
        private static DateTimeOffset AddByDate(DateTime dateTime, Func<DateTime, DateTime> operation, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
        {
            if (dateTime.Kind != DateTimeKind.Unspecified)
            {
                dateTime = TimeZoneInfo.ConvertTime(dateTime, timeZone);
            }

            var dt = operation.Invoke(dateTime);
            return resolver.Invoke(dt, timeZone);
        }
コード例 #12
0
 public static DateTimeOffset AddMonths(this DateTimeOffset dateTimeOffset, int months, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return(AddByDate(dateTimeOffset, dt => dt.AddMonths(months), timeZone, resolver));
 }
コード例 #13
0
 public static DateTimeOffset AddYears(this DateTimeOffset dateTimeOffset, int years, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return(AddByDate(dateTimeOffset, dt => dt.AddYears(years), timeZone, resolver));
 }
コード例 #14
0
        private static DateTimeOffset AddByDate(DateTimeOffset dateTimeOffset, Func <DateTime, DateTime> operation, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
        {
            var dto = TimeZoneInfo.ConvertTime(dateTimeOffset, timeZone);
            var dt  = operation.Invoke(dto.DateTime);

            return(resolver.Invoke(dt, timeZone));
        }
コード例 #15
0
 public static DateTimeOffset AddSeconds(this DateTime dateTime, double seconds, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return(dateTime.Add(TimeSpan.FromSeconds(seconds), timeZone, resolver));
 }
コード例 #16
0
ファイル: DateTimeExtensions.cs プロジェクト: axxu/corefxlab
 public static DateTimeOffset AddHours(this DateTime dateTime, double hours, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return dateTime.Add(TimeSpan.FromHours(hours), timeZone, resolver);
 }
コード例 #17
0
 public static DateTimeOffset AddTicks(this DateTime dateTime, long ticks, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return(dateTime.Add(TimeSpan.FromTicks(ticks), timeZone, resolver));
 }
コード例 #18
0
ファイル: DateTimeExtensions.cs プロジェクト: axxu/corefxlab
 public static DateTimeOffset AddMinutes(this DateTime dateTime, double minutes, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return dateTime.Add(TimeSpan.FromMinutes(minutes), timeZone, resolver);
 }
コード例 #19
0
        public static DateTimeOffset Add(this DateTime dateTime, TimeSpan timeSpan, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
        {
            var dto    = resolver.Invoke(dateTime, timeZone);
            var result = dto.Add(timeSpan);

            return(TimeZoneInfo.ConvertTime(result, timeZone));
        }
コード例 #20
0
ファイル: DateTimeExtensions.cs プロジェクト: axxu/corefxlab
 public static DateTimeOffset AddSeconds(this DateTime dateTime, double seconds, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return dateTime.Add(TimeSpan.FromSeconds(seconds), timeZone, resolver);
 }
コード例 #21
0
 public static DateTimeOffset AddDays(this DateTime dateTime, int days, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return(AddByDate(dateTime, dt => dt.AddDays(days), timeZone, resolver));
 }
コード例 #22
0
ファイル: DateTimeExtensions.cs プロジェクト: axxu/corefxlab
 public static DateTimeOffset AddTicks(this DateTime dateTime, long ticks, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return dateTime.Add(TimeSpan.FromTicks(ticks), timeZone, resolver);
 }
コード例 #23
0
 public static DateTimeOffset AddMinutes(this DateTime dateTime, double minutes, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     return(dateTime.Add(TimeSpan.FromMinutes(minutes), timeZone, resolver));
 }
コード例 #24
0
 public static DateTimeOffset Add(this DateTime dateTime, TimeSpan timeSpan, TimeZoneInfo timeZone, TimeZoneOffsetResolver resolver)
 {
     var dto = resolver.Invoke(dateTime, timeZone);
     var result = dto.Add(timeSpan);
     return TimeZoneInfo.ConvertTime(result, timeZone);
 }