コード例 #1
0
 /// <summary>
 /// Optimized conversion from an Instant to an OffsetDateTime in the specified calendar.
 /// This is equivalent to <c>new OffsetDateTime(new LocalDateTime(instant.Plus(offset), calendar), offset)</c>
 /// but with less overhead.
 /// </summary>
 internal OffsetDateTime(Instant instant, Offset offset, CalendarSystem calendar)
 {
     unchecked
     {
         int  days      = instant.DaysSinceEpoch;
         long nanoOfDay = instant.NanosecondOfDay + offset.Nanoseconds;
         if (nanoOfDay >= NanosecondsPerDay)
         {
             days++;
             nanoOfDay -= NanosecondsPerDay;
         }
         else if (nanoOfDay < 0)
         {
             days--;
             nanoOfDay += NanosecondsPerDay;
         }
         yearMonthDayCalendar = calendar.GetYearMonthDayFromDaysSinceEpoch(days).WithCalendar(calendar);
         nanosecondsAndOffset = nanoOfDay | (((long)offset.Seconds) << NanosecondsBits);
     }
 }
コード例 #2
0
ファイル: LocalDate.cs プロジェクト: wayneYaw/sonarlint-vs
 /// <summary>
 /// Constructs an instance from the number of days since the unix epoch, and a calendar
 /// system. The calendar system is assumed to be non-null, but the days since the epoch are
 /// validated.
 /// </summary>
 // TODO: See if we still need this.
 internal LocalDate(int daysSinceEpoch, [Trusted][NotNull] CalendarSystem calendar)
 {
     Preconditions.DebugCheckNotNull(calendar, nameof(calendar));
     this.yearMonthDayCalendar = calendar.GetYearMonthDayFromDaysSinceEpoch(daysSinceEpoch).WithCalendar(calendar);
 }