OSDN Git Service

時速計算に使用する日時の型をDateTimeUtcに変更
authorKimura Youichi <kim.upsilon@bucyou.net>
Mon, 7 May 2018 02:53:09 +0000 (11:53 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Wed, 9 May 2018 01:23:45 +0000 (10:23 +0900)
OpenTween/Models/HomeTabModel.cs
OpenTween/Tween.cs

index 8bfa474..8788756 100644 (file)
@@ -45,7 +45,7 @@ namespace OpenTween.Models
 
         // 流速計測用
         private int tweetsPerHour = 0;
-        private ConcurrentDictionary<DateTime, int> tweetsTimestamps = new ConcurrentDictionary<DateTime, int>();
+        private ConcurrentDictionary<DateTimeUtc, int> tweetsTimestamps = new ConcurrentDictionary<DateTimeUtc, int>();
 
         public HomeTabModel() : this(MyCommon.DEFAULTTAB.RECENT)
         {
@@ -58,7 +58,7 @@ namespace OpenTween.Models
         public override void AddPostQueue(PostClass post)
         {
             base.AddPostQueue(post);
-            this.UpdateTimelineSpeed(post.CreatedAt);
+            this.UpdateTimelineSpeed(new DateTimeUtc(post.CreatedAt.ToUniversalTime()));
         }
 
         public override async Task RefreshAsync(Twitter tw, bool backward, bool startup, IProgress<string> progress)
@@ -86,9 +86,9 @@ namespace OpenTween.Models
         /// <summary>
         /// タイムラインに追加された発言件数を反映し、タイムラインの流速を更新します
         /// </summary>
-        private void UpdateTimelineSpeed(DateTime postCreatedAt)
+        private void UpdateTimelineSpeed(DateTimeUtc postCreatedAt)
         {
-            var now = DateTime.Now;
+            var now = DateTimeUtc.Now;
 
             // 1 時間以上前の時刻は追加しない
             var oneHour = TimeSpan.FromHours(1);
@@ -97,7 +97,7 @@ namespace OpenTween.Models
 
             this.tweetsTimestamps.AddOrUpdate(postCreatedAt, 1, (k, v) => v + 1);
 
-            var removeKeys = new List<DateTime>();
+            var removeKeys = new List<DateTimeUtc>();
             var tweetsInWindow = 0;
             foreach (var (timestamp, count) in this.tweetsTimestamps)
             {
index 9db539f..c46a923 100644 (file)
@@ -172,8 +172,8 @@ namespace OpenTween
         private Tuple<long, string> inReplyTo = null; // リプライ先のステータスID・スクリーン名
 
         //時速表示用
-        private List<DateTime> _postTimestamps = new List<DateTime>();
-        private List<DateTime> _favTimestamps = new List<DateTime>();
+        private List<DateTimeUtc> _postTimestamps = new List<DateTimeUtc>();
+        private List<DateTimeUtc> _favTimestamps = new List<DateTimeUtc>();
 
         // 以下DrawItem関連
         private SolidBrush _brsHighLight = new SolidBrush(Color.FromKnownColor(KnownColor.Highlight));
@@ -2569,7 +2569,7 @@ namespace OpenTween
                             throw new WebApiException("NG(Restricted?)");
                     }
 
-                    this._favTimestamps.Add(DateTime.Now);
+                    this._favTimestamps.Add(DateTimeUtc.Now);
 
                     // TLでも取得済みならfav反映
                     if (this._statuses.ContainsKey(statusId))
@@ -2597,7 +2597,7 @@ namespace OpenTween
                 }
 
                 // 時速表示用
-                var oneHour = DateTime.Now - TimeSpan.FromHours(1);
+                var oneHour = DateTimeUtc.Now - TimeSpan.FromHours(1);
                 foreach (var i in MyCommon.CountDown(this._favTimestamps.Count - 1, 0))
                 {
                     if (this._favTimestamps[i] < oneHour)
@@ -2847,9 +2847,9 @@ namespace OpenTween
                 return;
             }
 
-            this._postTimestamps.Add(DateTime.Now);
+            this._postTimestamps.Add(DateTimeUtc.Now);
 
-            var oneHour = DateTime.Now - TimeSpan.FromHours(1);
+            var oneHour = DateTimeUtc.Now - TimeSpan.FromHours(1);
             foreach (var i in MyCommon.CountDown(this._postTimestamps.Count - 1, 0))
             {
                 if (this._postTimestamps[i] < oneHour)
@@ -2925,9 +2925,9 @@ namespace OpenTween
 
             p.Report(Properties.Resources.PostWorker_RunWorkerCompletedText4);
 
-            this._postTimestamps.Add(DateTime.Now);
+            this._postTimestamps.Add(DateTimeUtc.Now);
 
-            var oneHour = DateTime.Now - TimeSpan.FromHours(1);
+            var oneHour = DateTimeUtc.Now - TimeSpan.FromHours(1);
             foreach (var i in MyCommon.CountDown(this._postTimestamps.Count - 1, 0))
             {
                 if (this._postTimestamps[i] < oneHour)