public static bool IsTheSamePeriod(DateTime date1, DateTime date2, Every period)
        {
            if (period == Every.Day)
            {
                return(date1.Date == date2.Date);
            }
            if (period == Every.Week)
            {
                return(WeekNumber(date1) == WeekNumber(date2));
            }
            if (period == Every.Month)
            {
                return(date1.Year == date2.Year && date1.Month == date2.Month);
            }
            if (period == Every.Quarter)
            {
                return(date1.Year == date2.Year && QuarterNumber(date1) == QuarterNumber(date2));
            }
            if (period == Every.Year)
            {
                return(date1.Year == date2.Year);
            }

            throw new Exception("Такого периода не бывает!");
        }
Beispiel #2
0
        public override string ToString()
        {
            var text = "";

            if (OccuranceType == OccuranceType.None)
            {
                text = "on the " + DayNumber.ToOrdinalString();
            }
            else if (OccuranceType == OccuranceType.DayOfWeek)
            {
                text = "on the " + Occurance.ToString().ToLower() + " " + Day.ToString();
            }
            else if (OccuranceType == OccuranceType.Day)
            {
                text = "on the " + Occurance.ToString().ToLower() + " day";
            }
            else if (OccuranceType == OccuranceType.Weekday)
            {
                text = "on the " + Occurance.ToString().ToLower() + " weekday";
            }

            if (Every == 1)
            {
                text += " of every month";
            }
            else
            {
                text += " of every " + Every.ToString() + " months";
            }

            return(text);
        }
Beispiel #3
0
    /// <summary>
    /// 测试
    /// </summary>
    private static void test()
    {
        // 百位:1同,2条,3万
        // 十位:0无,其他数值
        // 个位:0无,1碰,2杠
        int[] everyData = new int[] { 110, 110, 110, 000, 230, 230, 230, 240, 240, 240, 250, 250, 250, 290, 290, 000,
                                      000, 000 };
        Every[] everys = new Every[18];
        for (int i = 0; i < everyData.Length; i++)
        {
            Every every = new Every();
            every.setNumber(everyData[i] / 10 % 10);
            every.setColor(everyData[i] / 100 == 0 ? 1000 : everyData[i] / 100);
            if (everyData[i] % 10 == 1)
            {
                every.setIf_Touched(true);
            }
            else if (everyData[i] % 10 == 2)
            {
                every.setIf_Konged(true);
            }
            everys[i] = every;
        }
        HuPaiResult result = RuleUtils.IsHu(everys);

        Debug.Log(result.type.huType);
    }
        /// <summary>
        /// довольно медленно
        /// может _ratesAsDictionary позволит ускорить?
        /// </summary>
        /// <param name="frequency"></param>
        /// <returns></returns>
        public List <DiagramPoint> GetBalances(Every frequency)
        {
            var root            = _db.SeekAccount("Мои");
            var result          = new List <DiagramPoint>();
            var currentDate     = new DateTime(2001, 12, 31); // считать надо всегда с самого начала, иначе остаток неправильный будет
            var currentMoneyBag = new MoneyBag();

            foreach (var tran in _db.TransWithTags)
            {
                while (currentDate < tran.Timestamp.Date)
                {
                    if (FunctionsWithEvery.IsLastDayOf(currentDate, frequency))
                    {
                        var sum = _rateExtractor.GetUsdEquivalent(currentMoneyBag, tran.Timestamp.Date);
                        if (sum != 0) // если вернулся 0 - это гэпы без курсов в начале времен
                        {
                            result.Add(new DiagramPoint(currentDate, (double)sum));
                        }
                        else
                        {
                            var lastSum = result.Last().CoorYdouble;
                            result.Add(new DiagramPoint(currentDate, lastSum));
                        }
                    }
                    currentDate = currentDate.AddDays(1);
                }
                currentMoneyBag = currentMoneyBag + tran.MoneyBagForAccount(root);
            }
            result.Add(new DiagramPoint(currentDate, (double)_rateExtractor.GetUsdEquivalent(currentMoneyBag, currentDate)));
            return(result);
        }
        public bool ZoomLimits(DiagramDataSeriesUnited currentSeriesUnited, Every groupInterval, int delta, ref DiagramDataExtremums extremums)
        {
            if (delta < 0)// increase picture
            {
                if (currentSeriesUnited.DiagramData.Count < 6)
                {
                    return(false);
                }
            }
            else
            {
            }

            int shiftDateRange = (extremums.MaxDate - extremums.MinDate).Days * delta / 1200;

            if (Math.Abs(shiftDateRange) < 31 && groupInterval == Every.Month)
            {
                shiftDateRange = 31 * Math.Sign(delta);
            }
            if (Math.Abs(shiftDateRange) < 366 && groupInterval == Every.Year)
            {
                shiftDateRange = 366 * Math.Sign(delta);
            }
            extremums.MinDate = extremums.MinDate.AddDays(-shiftDateRange);
            extremums.MaxDate = extremums.MaxDate.AddDays(shiftDateRange);
            return(true);
        }
Beispiel #6
0
        public Every Every(TimeSpan interval, Action action)
        {
            var every = new Every(interval, action);

            everies.Add(every);

            return(every);
        }
 public void GroupAllData(Every period, DiagramMode currentDiagramMode)
 {
     GroupAllData(period);
     if (currentDiagramMode == DiagramMode.BarVertical100)
     {
         StackAllData();
     }
 }
Beispiel #8
0
        public void Describe_to()
        {
            var matcher     = Every.Item(_startsWithA);
            var description = new StringDescription();

            matcher.DescribeTo(description);

            Assert.That(description.ToString(), Is.EqualTo("every item starts with an A"));
        }
Beispiel #9
0
 public DiagramHintCreator(DiagramData allDiagramData, SortedList <DateTime, List <double> > currentSeriesUnitedData,
                           Every groupInterval, DiagramMode diagramMode, DiagramDrawingCalculator diagramDrawingCalculator)
 {
     _allDiagramData           = allDiagramData;
     _currentSeriesUnitedData  = currentSeriesUnitedData;
     _groupInterval            = groupInterval;
     _diagramMode              = diagramMode;
     _diagramDrawingCalculator = diagramDrawingCalculator;
 }
Beispiel #10
0
        public override Task Enter(Dictionary <string, object> parameters)
        {
            positions = new List <Quad>();

            // currently selected menu item
            currentMenuItem = 0;

            // colors we'll use to change the title text
            colors = new Color[]
            {
                new Color(217, 87, 99, 255),
                new Color(95, 205, 228, 255),
                new Color(251, 242, 54, 255),
                new Color(118, 66, 138, 255),
                new Color(153, 229, 80, 255),
                new Color(223, 113, 38, 255)
            };

            // letters of MATCH 3 and their spacing relative to the center
            letterTable = new[]
            {
                new KeyValuePair <char, int>('M', -108),
                new KeyValuePair <char, int>('A', -64),
                new KeyValuePair <char, int>('T', -28),
                new KeyValuePair <char, int>('C', 2),
                new KeyValuePair <char, int>('H', 40),
                new KeyValuePair <char, int>('3', 112)
            };

            // time for a color change if it's been half a second
            colorTimer = Match3.Instance.Timer.Every(TimeSpan.FromSeconds(0.075), () =>
            {
                var color = colors[6 - 1];

                for (var i = 6 - 1; i > 0; i--)
                {
                    colors[i] = colors[i - 1];
                }

                colors[0] = color;
            });

            // generate full table of tiles just for display
            for (var i = 0; i < 64; i++)
            {
                positions.Add(Match3.Instance.Frames["tiles"][Match3.Instance.Random.Next(18)][Match3.Instance.Random.Next(6)]);
            }

            // used to animate our full-screen transition rect
            transitionAlpha = 0;

            // if we've selected an option, we need to pause input while we animate out
            pauseInput = false;

            return(Task.CompletedTask);
        }
 public void StackAllData(DiagramMode newDiagramMode, Every currentGroupInterval)
 {
     if (currentGroupInterval != GroupInterval)
     {
         GroupAllData(currentGroupInterval);
     }
     if (newDiagramMode == DiagramMode.BarVertical100)
     {
         StackAllData();
     }
 }
Beispiel #12
0
        public void Periods_with_undefined_endings_have_infinite_occurrences()
        {
            var job = new ScheduledJob();
            var info = new Every(job).Hour();
            Assert.Throws<ArgumentException>(() => { info.AllOccurrences.ToList(); });
            Assert.IsNull(info.LastOccurrence);

            var next = info.NextOccurrence;
            Assert.IsNotNull(next);
            Console.WriteLine(next);
        }
 public override string ToString()
 {
     if (Every == 1)
     {
         return("every hour between " + FromTime.ToString(@"H\:mm") + " and " + ToTime.ToString(@"H\:mm"));
     }
     else
     {
         return("every " + Every.ToString() + " hours between " + FromTime.ToString(@"H\:mm") + " and " + ToTime.ToString(@"H\:mm"));
     }
 }
Beispiel #14
0
        public void Periods_with_defined_endings_have_finite_occurrences()
        {
            var job = new ScheduledJob();
            var info = new Every(job).Hour().For(6).Days();
            Assert.AreEqual(24 * 6, info.AllOccurrences.Count());

            Assert.IsNotNull(info.NextOccurrence);
            Assert.IsNotNull(info.LastOccurrence);
            Assert.AreEqual(info.NextOccurrence, info.AllOccurrences.First());
            Assert.AreEqual(info.LastOccurrence, info.AllOccurrences.Last());
        }
Beispiel #15
0
        public void Periods_with_defined_endings_have_finite_occurrences()
        {
            var job  = new ScheduledJob();
            var info = new Every(job).Hour().For(6).Days();

            Assert.AreEqual(24 * 6, info.AllOccurrences.Count());

            Assert.IsNotNull(info.NextOccurrence);
            Assert.IsNotNull(info.LastOccurrence);
            Assert.AreEqual(info.NextOccurrence, info.AllOccurrences.First());
            Assert.AreEqual(info.LastOccurrence, info.AllOccurrences.Last());
        }
Beispiel #16
0
        public override int GetHashCode()
        {
            unchecked {
                int hash = 17;
                if (Status != default(ScheduleStatus))
                {
                    hash = hash * 23 + Status.GetHashCode();
                }
                if (Every != default(int))
                {
                    hash = hash * 23 + Every.GetHashCode();
                }
                if (Period != default(SchedulePeriod))
                {
                    hash = hash * 23 + Period.GetHashCode();
                }
                if (On != default(ScheduleOn))
                {
                    hash = hash * 23 + On.GetHashCode();
                }
                if (InWords != default(String))
                {
                    hash = hash * 23 + InWords.GetHashCode();
                }
                if (StartDate != default(DateTime))
                {
                    hash = hash * 23 + StartDate.GetHashCode();
                }
                if (EndDate != default(DateTime))
                {
                    hash = hash * 23 + EndDate.GetHashCode();
                }
                if (Charge != default(ChargeScheduling))
                {
                    hash = hash * 23 + Charge.GetHashCode();
                }
                if (Transfer != default(TransferScheduling))
                {
                    hash = hash * 23 + Transfer.GetHashCode();
                }
                if (Occurrences != default(ScopedList <Occurrence>))
                {
                    hash = hash * 23 + Occurrences.GetHashCode();
                }
                if (NextOccurrences != default(ScopedList <Occurrence>))
                {
                    hash = hash * 23 + NextOccurrences.GetHashCode();
                }

                return(hash);
            }
        }
Beispiel #17
0
        public void Periods_with_undefined_endings_have_infinite_occurrences()
        {
            var job  = new ScheduledJob();
            var info = new Every(job).Hour();

            Assert.Throws <ArgumentException>(() => { info.AllOccurrences.ToList(); });
            Assert.IsNull(info.LastOccurrence);

            var next = info.NextOccurrence;

            Assert.IsNotNull(next);
            Console.WriteLine(next);
        }
Beispiel #18
0
        public SteamworksPlugin(uint appId, int callbackFrequencyMs = 2000)
        {
            if (_init)
            {
                throw new Exception("Only one Steamworks Plugin can be active.");
            }

            _init = true;
            AppId = appId;

            _callbackRunner = new Every(callbackFrequencyMs, () => { SteamNative.RunCallbacks(); });

            LoadNative();
        }
Beispiel #19
0
    public void Detach(GameObject go)
    {
        var e = go.GetComponent <Entity>();

        if (e != null)
        {
            e.Destoryed -= OnEntityDestroyed;
        }
        Every.Remove(go);
        if (GODetached != null)
        {
            GODetached(go);
        }
    }
Beispiel #20
0
        public DrawingImage Draw(DiagramDataSeriesUnited diagramData, DiagramDataExtremums diagramDataExtremums,
                                 DiagramDrawingCalculator diagramDrawingCalculator, DiagramMode diagramMode, Every groupInterval)
        {
            _diagramData = diagramData;
            _extremums   = diagramDataExtremums;
            _diagramDrawingCalculator = diagramDrawingCalculator;
            _diagramMode   = diagramMode;
            _groupInterval = groupInterval;

            var drawingGroup = new DrawingGroup();

            drawingGroup.Children.Add(FullDiagramBackground(_diagramDrawingCalculator));
            drawingGroup.Children.Add(DiagramRegionBackground(_diagramDrawingCalculator));

            drawingGroup.Children.Add(HorizontalAxes(_diagramDrawingCalculator));
            drawingGroup.Children.Add(VerticalGridLines(_diagramDrawingCalculator));

            drawingGroup.Children.Add(XAxisDashes(Dock.Top, _diagramDrawingCalculator));
            drawingGroup.Children.Add(XAxisDashes(Dock.Bottom, _diagramDrawingCalculator));
            drawingGroup.Children.Add(XAxisMarkers(Dock.Top, _diagramDrawingCalculator));
            drawingGroup.Children.Add(XAxisMarkers(Dock.Bottom, _diagramDrawingCalculator));

            drawingGroup.Children.Add(VerticalAxes(_diagramDrawingCalculator));

            drawingGroup.Children.Add(YAxisDashes(Dock.Left, _diagramDrawingCalculator));
            drawingGroup.Children.Add(YAxisMarkers(Dock.Left, _diagramDrawingCalculator));
            drawingGroup.Children.Add(YAxisDashes(Dock.Right, _diagramDrawingCalculator));
            drawingGroup.Children.Add(YAxisMarkers(Dock.Right, _diagramDrawingCalculator));

            drawingGroup.Children.Add(HorizontalGridLines(_diagramDrawingCalculator));

            if (_diagramMode == DiagramMode.BarVertical || _diagramMode == DiagramMode.BarVertical100)
            {
                BarVerticalDiagram(_diagramDrawingCalculator, ref drawingGroup);
            }
            if (_diagramMode == DiagramMode.Lines)
            {
                for (var j = 0; j < _diagramData.SeriesCount; j++)
                {
                    drawingGroup.Children.Add(OneSeriesLine(_diagramDrawingCalculator, j));
                }
            }
            if (_diagramMode == DiagramMode.SeparateLines)
            {
                drawingGroup.Children.Add(OneSeriesLine(_diagramDrawingCalculator, diagramData.ActiveLine));
            }

            return(new DrawingImage(drawingGroup));
        }
Beispiel #21
0
 /// <summary>
 /// 判断是否可以碰牌
 /// </summary>
 /// <param name="everys"></param>
 /// <param name="every"></param>
 /// <returns></returns>
 public static int CheckPeng(Every[] everys, Every every)
 {
     for (int i = 0; i < everys.Length - 1; i++)
     {
         if (everys[i].getColor() == every.getColor() && everys[i].getNumber() == every.getNumber() &&
             everys[i + 1].getColor() == every.getColor() && everys[i + 1].getNumber() == every.getNumber())
         {
             if (everys[i].getIf_Touched() == false && everys[i + 1].getIf_Touched() == false)
             {
                 return(i);
             }
         }
     }
     return(-1);
 }
        private void ChangeDiagramForNewGrouping(Every groupPeriod)
        {
            GroupInterval   = groupPeriod;
            AllSeriesUnited = new DiagramDataSeriesUnited(AllDiagramData);
            AllSeriesUnited.GroupAllData(groupPeriod, DiagramMode);

            if (groupPeriod == Every.Year)
            {
                DefineYearsLimits();
            }
            else
            {
                DiagramDataExtremums.MaxDate = new DateTime(DiagramDataExtremums.MaxDate.Year, 12, 31);
            }

            ExtractDataBetweenLimits();
            DiagramDataExtremums = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
            Draw();
        }
        public override string ToString()
        {
            var days = new List <string>();

            foreach (var day in Enum.GetValues(typeof(DayOfWeek)))
            {
                if (_Days[(int)day])
                {
                    days.Add(day.ToString());
                }
            }

            if (Every == 1)
            {
                return("every week on " + days.ToCommaList());
            }
            else
            {
                return("every " + Every.ToString() + " weeks on " + days.ToCommaList());
            }
        }
Beispiel #24
0
    public void Attach(GameObject go)
    {
        Every.Add(go);
        var marker = go.GetComponent <InteractablesMarker>();

        if (marker == null)
        {
            marker = go.AddComponent <InteractablesMarker>();
        }
        marker.AttachedTo = this;
        var e = go.GetComponent <Entity>();

        if (e != null)
        {
            e.Destoryed += OnEntityDestroyed;
        }
        if (GOAttached != null)
        {
            GOAttached(go);
        }
    }
        public DiagramDataSeriesUnited(DiagramData allSeries)
        {
            GroupInterval = allSeries.TimeInterval;

            DiagramData     = new SortedList <DateTime, List <double> >();
            PositiveBrushes = new List <Brush>();
            NegativeBrushes = new List <Brush>();
            Names           = new List <string>();
            SeriesCount     = 0;

            foreach (var series in allSeries.Series)
            {
                Names.Add(series.Name);
                foreach (var pair in series.Points)
                {
                    if (!DiagramData.ContainsKey(pair.CoorXdate))
                    {
                        DiagramData.Add(pair.CoorXdate, new List <double>());
                    }
                    while (DiagramData[pair.CoorXdate].Count < SeriesCount)
                    {
                        DiagramData[pair.CoorXdate].Add(0);
                    }
                    DiagramData[pair.CoorXdate].Add(pair.CoorYdouble);
                }
                SeriesCount++;
                PositiveBrushes.Add(series.PositiveBrushColor);
                NegativeBrushes.Add(series.NegativeBrushColor);
            }

            foreach (var pair in DiagramData)
            {
                while (DiagramData[pair.Key].Count < SeriesCount)
                {
                    DiagramData[pair.Key].Add(0);
                }
            }
        }
 public static bool IsLastDayOf(DateTime date, Every period)
 {
     if (period == Every.Day)
     {
         return(true);
     }
     if (period == Every.Week && date.DayOfWeek == DayOfWeek.Sunday)
     {
         return(true);
     }
     if (period == Every.Month && date.Month != date.AddDays(1).Month)
     {
         return(true);
     }
     if (period == Every.Quarter && date.Month != date.AddDays(1).Month&& date.Month % 3 == 0)
     {
         return(true);
     }
     if (period == Every.Year && date.Day == 31 && date.Month == 12)
     {
         return(true);
     }
     return(false);
 }
        private void GroupAllData(Every period)
        {
            var groupedData = new SortedList <DateTime, List <double> >();
            var onePair     = DiagramData.ElementAt(0);

            for (var p = 1; p < DiagramData.Count; p++)
            {
                var pair = DiagramData.ElementAt(p);
                if (FunctionsWithEvery.IsTheSamePeriod(onePair.Key, pair.Key, period))
                {
                    for (var i = 0; i < onePair.Value.Count; i++)
                    {
                        onePair.Value[i] += pair.Value[i];
                    }
                }
                else
                {
                    groupedData.Add(onePair.Key, onePair.Value);
                    onePair = pair;
                }
            }
            groupedData.Add(onePair.Key, onePair.Value);
            DiagramData = new SortedList <DateTime, List <double> >(groupedData);
        }
Beispiel #28
0
 private void Every_KeyUp(object sender, KeyEventArgs e)
 {
     Every.IsHitTestVisible = false;
     Every.Focus();
     Every.IsHitTestVisible = true;
 }
Beispiel #29
0
        public void Match_if_all_elements_match()
        {
            var strings = new[] { "Aaaa", "Abbbb", "Acccc" };

            Assert.That(strings, Every.Item(_startsWithA));
        }
Beispiel #30
0
 public UITextInput()
 {
     InputTransparent = false;
     _blinkingTimer   = new Every(650, () => { _cursorOn = !_cursorOn; });
 }
Beispiel #31
0
 private void EverySpinButton_PreviewMouseDown(object sender, RoutedEventArgs e)
 {
     Every.Focus();
 }