zoukankan      html  css  js  c++  java
  • 检测是一个时间串或一个数字串是否连续

     private static int Getcount(bool distinct, DateTime[] timeList, DateTime end, TimeSpan ts)
            {
                var datemark = end;
                int count = 0;
                for (int i = 0; i < timeList.Length; i++)
                {
                    var curdate = timeList[i];
    
                    if (curdate > end)
                    {
                        //在范围外
                        continue;
                    }
    
                    if (i == 0)
                    {
                        if (curdate < end.Subtract(ts))
                            return 0;
                    }
                    if (curdate > datemark.Subtract(ts) && curdate <= datemark)
                    {
                        //如果取唯一值,这里只会执行一次
                        if (!distinct)
                            count++;
                        if (distinct && count == 0)
                        {
                            count = 1;
                        }
    
                        continue;
                    }
                    else if (curdate > datemark.Subtract(ts).Subtract(ts)
                             && curdate <= datemark.Subtract(ts))
                    {
                        //步进一刻度
                        datemark = datemark.Subtract(ts);
                        count++;
                        continue;
                    }
                    //能到这里已经连续
                    return count;
                }
    
                return count;
            }
    
    
    
    
            [TestMethod]
            public void MyTestMethod_Count()
            {
    
                var reader = new[]
                                 {
                                     DateTime.Parse("2012-1-6 1:0:0"),
                                     DateTime.Parse("2012-1-5 1:0:0"),
                                     DateTime.Parse("2012-1-4 1:0:0"),
                                        //DateTime.Parse("2012-1-4 2:0:0"),
                                     DateTime.Parse("2012-1-3 1:0:0"),
                                     //DateTime.Parse("2012-1-2 1:0:0"),
                                     DateTime.Parse("2012-1-1 1:0:0")
                                 };
    
                //Console.WriteLine(Getcount(true, reader));
    
                Assert.AreEqual(4, Getcount(false, reader));
            }
    
    
            [TestMethod]
            public void MyTestMethod_Distinct_Count()
            {
    
                var reader = new[]
                                 {
                                     DateTime.Parse("2012-1-6 1:0:0"),
                                     DateTime.Parse("2012-1-5 1:0:0"),
                                     DateTime.Parse("2012-1-4 1:0:0"),
                                      DateTime.Parse("2012-1-4 2:0:0"),
                                      DateTime.Parse("2012-1-4 2:0:0"),
                                        DateTime.Parse("2012-1-4 2:0:0"),
                                     DateTime.Parse("2012-1-3 1:0:0"),
                                     //DateTime.Parse("2012-1-2 1:0:0"),
                                     DateTime.Parse("2012-1-1 1:0:0")
                                 };
    
                //Console.WriteLine(Getcount(true, reader));
    
                Assert.AreEqual(4, Getcount(true, reader));
            }
    
    
    
            [TestMethod]
            public void MyTestMethod_distinct()
            {
                var reader = new[]
                                 {
                                      DateTime.Parse("2012-1-8 2:0:0"),
                                      DateTime.Parse("2012-1-7 2:0:0"),
                                      DateTime.Parse("2012-1-6 2:0:0"),
                                     DateTime.Parse("2012-1-6 1:0:0"),
                                     DateTime.Parse("2012-1-5 1:0:0"),
                                     DateTime.Parse("2012-1-4 1:0:0"),
                                     DateTime.Parse("2012-1-4 2:0:0"),
                                     DateTime.Parse("2012-1-3 1:0:0"),
                                     //DateTime.Parse("2012-1-2 1:0:0"),
                                     DateTime.Parse("2012-1-1 1:0:0")
                                 };
    
                Assert.AreEqual(4, Getcount(true, reader));
            }
    
            [TestMethod]
            public void MyTestMethod_0()
            {
                var reader = new DateTime[]
                                 {
                                     // DateTime.Parse("2012-1-6 2:0:0"),
                                     //DateTime.Parse("2012-1-6 1:0:0"),
                                     //DateTime.Parse("2012-1-5 1:0:0"),
                                     //DateTime.Parse("2012-1-4 1:0:0"),
                                     //DateTime.Parse("2012-1-4 2:0:0"),
                                     //DateTime.Parse("2012-1-3 1:0:0"),
                                     ////DateTime.Parse("2012-1-2 1:0:0"),
                                     //DateTime.Parse("2012-1-1 1:0:0")
                                 };
    
                Assert.AreEqual(0, Getcount(true, reader));
            }
    
    
    
    
            [TestMethod]
            public void MyTestMethod_all()
            {
                MyTestMethod_Count();
                MyTestMethod_distinct();
                MyTestMethod_0();
            }
    
    
    
    
            private static int Getcount(bool distinct, DateTime[] reader)
            {
                var seconds = 24 * 60 * 60;
                var end = DateTime.Parse("2012-1-7 0:0:0");
                TimeSpan ts = new TimeSpan(0, 0, seconds);
                return Getcount(distinct, reader, end, ts);
            }
  • 相关阅读:
    CSS display使用
    WPF触发器
    WPF动画2
    WPF动画2
    WPF 动画1
    CSS 媒体查询
    [Leetcode] Rotate List
    [Leetcode] Add Two Numbers
    [Leetcode] Sort List
    [Leetcode] Reverse Linked List II
  • 原文地址:https://www.cnblogs.com/zbw911/p/3105563.html
Copyright © 2011-2022 走看看