コード例 #1
0
            public bool CollidesWith(BaseScheduleItem other)
            {
                var paddedStartTime = StartTime;
                var paddedEndTime   = EndTime;

                if (this.GetType() != other.GetType())
                {
                    paddedStartTime = StartTime.Subtract(TimeSpan.FromMinutes(10));
                    paddedEndTime   = EndTime.Add(TimeSpan.FromMinutes(10));
                }

                // AAAA
                //      BBBB

                // AAAAAAA
                //      BBBB

                // AAAAAAAAAAAAA
                //      BBBB

                //       AA
                //      BBBB

                // Easier to determine if it does NOT collide
                bool doesNotCollide = paddedEndTime <= other.StartTime || paddedStartTime >= other.EndTime;

                return(!doesNotCollide);
            }
コード例 #2
0
        private void Timer_Tick(object sender, EventArgs e)
        {
            //Różnica między startem a aktualnym czasem
            TimeSpan difference = DateTime.Now.Subtract(StartTime);

            //W razie gdyby zaczeto akcje od okreslonego czasu
            TimeSpan startDifference = StartTime.Subtract(ActionTime);

            //Ustawienie aktualnej pozycji procentowej
            GameTimerProgress.Percentage = (double)((difference.TotalMilliseconds + startDifference.TotalMilliseconds) / (TimerMS)) * 100;


            if (GameTimerProgress.Percentage > 75)
            {
                if (!isAnimating)
                {
                    isAnimating = true;
                }
            }

            if (GameTimerProgress.Percentage >= 100)
            {
                this.CloseTimer();
                this.GameTimerProgress.Percentage = 0;

                if (isAnimating)
                {
                    blinkAnimation.Stop(this.GameTimerProgress);
                    isAnimating = false;
                }
                return;
            }
        }
コード例 #3
0
        public void GetAzureOverview(string AzureLabel)
        {
            long startMillisFromEpoch = (long)StartTime.Subtract(DateTimeUtils.EPOCH_1970).TotalMilliseconds;
            long endMillisFromEpoch   = (long)EndTime.Subtract(DateTimeUtils.EPOCH_1970).TotalMilliseconds;

            AzureDashboardRequest.Get(AzureLabel, StartTime, EndTime);
        }
コード例 #4
0
        public int GetMinutesRemaining(bool untilStart)
        {
            TimeSpan ts = untilStart ? StartTime.Subtract(DateTime.Now) : ExpireTime.Subtract(DateTime.Now);
            int      days = ts.Days, hours = ts.Hours, mins = ts.Minutes;

            return((days * 1440) + (hours * 60) + ts.Minutes);
        }
コード例 #5
0
        private void initialize(bool autostart)
        {
            StartTime = DateTime.Now;

            Helper.General.ServerRestarted += Helper_ServerRestarted;

#if DEBUG
            //Debug data
            StartTime = StartTime.Subtract(new TimeSpan(5, 0, 0, 0));

            Players.Add(IPAddress.Parse("192.168.178.2"));
            Players.Add(IPAddress.Parse("192.168.178.3"));
            Players.Add(IPAddress.Parse("192.168.178.4"));
            Players.Add(IPAddress.Parse("192.168.178.5"));
            Players.Add(IPAddress.Parse("192.168.178.6"));
#endif

            refresh          = new Timer(Settings.Instance.StatisticsInterval);
            refresh.Elapsed += refresh_Elapsed;

            if (autostart)
            {
                refresh.Start();
                Enabled = true;
            }
        }
コード例 #6
0
        public TimeSpan CalculateTimeToLongerEvent()
        {
            ArffEvent previousWork = (ArffEvent)Previous;

            while (previousWork != null)
            {
                if (previousWork.Duration > Duration)
                {
                    break;
                }
                else
                {
                    previousWork = (ArffEvent)previousWork.Previous;
                }
            }

            ArffEvent nextWork = (ArffEvent)Next;

            while (nextWork != null)
            {
                if (nextWork.Duration > Duration)
                {
                    break;
                }
                else
                {
                    nextWork = (ArffEvent)nextWork.Next;
                }
            }

            if (previousWork == null && nextWork == null)
            {
                return(MaxDuration);
            }
            if (previousWork == null)
            {
                return(nextWork.StartTime.Subtract(StartTime));
            }
            if (nextWork == null)
            {
                return(StartTime.Subtract(previousWork.StartTime));
            }
            else
            {
                return((StartTime.Subtract(previousWork.StartTime) < nextWork.StartTime.Subtract(StartTime)) ?
                       StartTime.Subtract(previousWork.StartTime)
                    : nextWork.StartTime.Subtract(StartTime));
            }
        }
コード例 #7
0
ファイル: CountDown.cs プロジェクト: mlop3s/CountDownKata
        private void UpdateCounter()
        {
            //if (Elapsed.TotalMilliseconds >= StartTime.TotalMilliseconds)
            //{
            //    return;
            //}

            Elapsed       = Elapsed.Add(TimeSpan.FromMilliseconds(+100));
            ElapsedString = Elapsed.ToString(@"mm\:ss");
            Current       = StartTime.Subtract(Elapsed);
            if (Current.TotalMilliseconds <= StartTime.TotalMilliseconds * 0.4)
            {
                Background = Brushes.Red;
            }
        }
コード例 #8
0
        public void Update(int dt)
        {
            switch (_notificationsAboutStart)
            {
            case 3:
                if (DateTime.Now > StartTime.Subtract(new TimeSpan(0, 30, 0)))
                {
                    _notificationsAboutStart--;
                    World.BroadcastMsg("ÍÑÈ ÇáÝÑÞ", string.Format("{1} in {0} íÈÏà ÈÚÏ 30 ÏÞíÞÉ", Town, WarType),
                                       Color.Firebrick);
                    Asda2BattlegroundHandler.SendMessageServerAboutWarStartsResponse(30);
                }
                break;

            case 2:
                if (DateTime.Now > StartTime.Subtract(new TimeSpan(0, 15, 0)))
                {
                    _notificationsAboutStart--;
                    World.BroadcastMsg("ÍÑÈ ÇáÝÑÞ", string.Format("{1} in {0} íÈÏà ÈÚÏ 15 ÏÞíÞÉ", Town, WarType),
                                       Color.Firebrick);
                    Asda2BattlegroundHandler.SendMessageServerAboutWarStartsResponse(15);
                }
                break;

            case 1:
                if (DateTime.Now > StartTime.Subtract(new TimeSpan(0, 5, 0)))
                {
                    _notificationsAboutStart--;
                    World.BroadcastMsg("ÍÑÈ ÇáÝÑÞ", string.Format("{1} in {0} íÈÏà ÈÚÏ 5 ÏÞÇÆÞ", Town, WarType),
                                       Color.Firebrick);
                    Asda2BattlegroundHandler.SendMessageServerAboutWarStartsResponse(5);
                }
                break;

            default:
                break;
            }
            if (DateTime.Now > EndTime && IsRunning)
            {
                Stop();
            }
            else if (DateTime.Now > StartTime && DateTime.Now < EndTime)
            {
                Start();
            }
        }
コード例 #9
0
ファイル: StreamStore.cs プロジェクト: 8bitStarlight/Lean
        }     // End of Update

        /// <summary>
        /// A time period has lapsed, trigger a save/queue of the current value of data.
        /// </summary>
        /// <param name="fillForward">Data stream is a fillforward type</param>
        /// <param name="isQCData">The data stream is a QCManaged stream</param>
        public void TriggerArchive(bool fillForward, bool isQCData)
        {
            lock (_lock)
            {
                try
                {
                    Console.Write(".");

                    //When there's nothing to do:
                    if (_data == null && !fillForward)
                    {
                        Log.Debug("StreamStore.TriggerArchive(): No data to store, and not fill forward: " + Symbol);
                    }

                    if (_data != null && _data.Time < StartTime)
                    {
                        //Create clone and reset original
                        Log.Debug("StreamStore.TriggerArchive(): Enqueued new data: S:" + _data.Symbol + " V:" + _data.Value);
                        _previousData = _data.Clone();
                        _queue.Enqueue(_data.Clone());
                        _data = null;
                    }
                    else if (fillForward && _data == null && _previousData != null || (!isQCData && _data == null && _previousData != null))
                    {
                        //There was no other data in this timer period, and this is a fillforward subscription:
                        Log.Debug("StreamStore.TriggerArchive(): Fillforward, Previous Enqueued: S:" + _previousData.Symbol + " V:" + _previousData.Value);
                        var cloneForward = _previousData.Clone();
                        cloneForward.Time = StartTime.Subtract(_config.Increment);
                        _queue.Enqueue(cloneForward);
                    }
                }
                catch (Exception err)
                {
                    Log.Error("StreamStore.TriggerAchive(fillforward): Failed to archive: " + err.Message);
                }
            }
        }
コード例 #10
0
ファイル: TimeLine.cs プロジェクト: Hrubon/pasch
 private void btnMinus10Minutes_Click(object sender, EventArgs e)
 {
     StartTime = StartTime.Subtract(new TimeSpan(0, TEN_MINUTES, 0));
     Redraw();
 }
コード例 #11
0
ファイル: ElapseTime.cs プロジェクト: JWPLAY/AUBE
 public int ElapseHours()
 {
     return(Math.Abs(StartTime.Subtract(EndTime).Hours));
 }
コード例 #12
0
ファイル: ElapseTime.cs プロジェクト: JWPLAY/AUBE
 public int ElapseMinutes()
 {
     return(Math.Abs(StartTime.Subtract(EndTime).Minutes));
 }
コード例 #13
0
ファイル: ElapseTime.cs プロジェクト: JWPLAY/AUBE
 public int ElapseSeconds()
 {
     return(Math.Abs(StartTime.Subtract(EndTime).Seconds));
 }
コード例 #14
0
 public TimeSpan GetTimeRemaining(bool untilStart)
 {
     return(untilStart ? StartTime.Subtract(DateTime.Now) : ExpireTime.Subtract(DateTime.Now));
 }
コード例 #15
0
 /// <summary>
 /// Get the meeting duration in minutes.
 /// </summary>
 /// <returns></returns>
 public double GetDuration()
 {
     return(StartTime.Subtract(EndTime).TotalMinutes);
 }
コード例 #16
0
ファイル: TimeLine.cs プロジェクト: Hrubon/pasch
 private void btnMinus1Day_Click(object sender, EventArgs e)
 {
     StartTime = StartTime.Subtract(new TimeSpan(ONE_DAY, 0, 0, 0));
     Redraw();
 }
コード例 #17
0
        /// <summary>
        /// CSVファイルからSRTファイルに変換する
        /// </summary>
        /// <param name="source"></param>
        /// <param name="destination"></param>
        /// <remarks>字幕表示終了時刻は次の字幕表示開始時刻 or 文字数÷5秒の短い方</remarks>
        internal async Task Convert()
        {
            var source      = this.FileName;
            var destination = Path.ChangeExtension(this.FileName, ".srt");

            try
            {
                // ファイルからの入力は非同期に実施する
                await Task.Run(() =>
                {
                    long seqNo       = 1;
                    var reg          = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
                    var srts         = new List <TSrt>();
                    var baseDateTime = DateTime.MinValue;

                    try
                    {
                        // CSV入力
                        using (var fs = new System.IO.FileStream(source, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                        {
                            using (var sr = new StreamReader(fs, Encoding.UTF8))
                            {
                                // ファイルの終わりまで入力する
                                while (!sr.EndOfStream)
                                {
                                    var s             = sr.ReadLine();
                                    var items         = reg.Split(s);
                                    var messageTime   = DateTime.Parse(items[0].Substring(1, items[0].Length - 2));
                                    var name          = items[1].Substring(1, items[1].Length - 2);
                                    var message       = items[2].Substring(1, items[2].Length - 2);
                                    var translateText = items[3].Substring(1, items[3].Length - 2);

                                    this.Message = $"Read CSV File : SeqNo={seqNo}";
                                    srts.Add(new TSrt()
                                    {
                                        SeqNo     = seqNo++,
                                        StartTime = messageTime,
                                        EndedTime = messageTime.AddSeconds(Math.Max(Math.Ceiling((Double)message.Length / 5), 3)),
                                        Subtitle  = message,
                                    });
                                }
                                sr.Close();
                            }
                        }

                        // 字幕加工
                        for (var index = 0; index <= srts.Count - 2; index++)
                        {
                            this.Message = $"Check lines : SeqNo={srts[index].SeqNo}";
                            if (srts[index].EndedTime > srts[index + 1].StartTime)
                            {
                                srts[index].EndedTime = srts[index + 1].StartTime;
                            }
                        }

                        // ファイル出力
                        if (srts.Count > 0)
                        {
                            baseDateTime = srts[0].StartTime.AddSeconds(-this.OffsetSec);
                        }
                        using (var fs = new System.IO.FileStream(destination, FileMode.Create, FileAccess.Write, FileShare.None))
                        {
                            using (var sw = new StreamWriter(fs, Encoding.UTF8))
                            {
                                foreach (var srt in srts)
                                {
                                    var writedata = $"{srt.SeqNo}{Environment.NewLine}{srt.StartTime.Subtract(baseDateTime):hh\\:mm\\:ss\\,fff} --> {srt.EndedTime.Subtract(baseDateTime):hh\\:mm\\:ss\\,fff}{Environment.NewLine}{srt.Subtitle}{Environment.NewLine}";
                                    sw.WriteLine(writedata);
                                    this.Message = $"Write SRT File : SeqNo={srt.SeqNo}";
                                }
                                sw.Close();
                            }
                        }

                        this.Message = "End of file";
                    }
                    catch (Exception ex)
                    {
                        OnThrew(ex);
                    }
                });
            }
            catch { }
        }
コード例 #18
0
 public ulong ToUInt64()
 {
     return((ulong)SequentialCount | ((ulong)StartTime.Subtract(ValveEpoch).TotalSeconds << 20) | ((ulong)ProcessId << 50) | ((ulong)BoxId << 54));
 }