示例#1
0
 // This method is for performance. It only update the UTC offset on weekend boundaries.
 private long GetUtcOffset(TimeStamp tickTime)
 {
     if (tickTime.Internal >= nextOffsetUpdate.Internal)
     {
         if (timeZone == null)
         {
             timeZone = new SymbolTimeZone(symbol);
             timeZone.SetExchangeTimeZone();
         }
         utcOffset        = timeZone.UtcOffset(tickTime);
         nextOffsetUpdate = utcTime;
         int dayOfWeek = nextOffsetUpdate.GetDayOfWeek();
         nextOffsetUpdate.AddDays(7 - dayOfWeek);
         nextOffsetUpdate.SetDate(nextOffsetUpdate.Year, nextOffsetUpdate.Month, nextOffsetUpdate.Day);
     }
     return(utcOffset);
 }
示例#2
0
        public String DueForFeeding()
        {
            var daysSinceLastUpdate = (DateTime.UtcNow - TimeStamp.AddDays(FeedInterval)).Days;

            if (daysSinceLastUpdate < 0)
            {
                return(Status.Default);
            }


            switch (daysSinceLastUpdate)
            {
            case 0:
                return(Status.Today);

            case 1:
                return(Status.OneDayLate);

            default:
                return(Status.TwoOrMoreDaysLate);
            }
        }
示例#3
0
 /// <inheritdoc/>
 public void SetTime(TimeStamp utcTime)
 {
     binary.UtcTime = utcTime.Internal;
     if (utcTime.Internal >= nextUtcOffsetUpdate.Internal)
     {
         if (timeZone == null)
         {
             if (binary.Symbol == 0)
             {
                 throw new ApplicationException("Please call SetSymbol() prior to SetTime() method.");
             }
             SymbolInfo symbol = Factory.Symbol.LookupSymbol(binary.Symbol);
             timeZone = new SymbolTimeZone(symbol);
         }
         utcOffset           = timeZone.UtcOffset(UtcTime);
         nextUtcOffsetUpdate = utcTime;
         int dayOfWeek = nextUtcOffsetUpdate.GetDayOfWeek();
         nextUtcOffsetUpdate.AddDays(7 - dayOfWeek);
         nextUtcOffsetUpdate.SetDate(nextUtcOffsetUpdate.Year, nextUtcOffsetUpdate.Month, nextUtcOffsetUpdate.Day);
     }
     localTime = new TimeStamp(binary.UtcTime);
     localTime.AddSeconds(utcOffset);
 }