找出时间所属的区间段

一个实际的问题,有以下几个时间区间:

0:00    ~    3:00

3:00    ~    4:30

4:30    ~    7:00

7:30    ~    11:00

11:00  ~    13:00

13:00  ~    14:00

14:00  ~    15:00

15:00  ~    18:00

18:30  ~    23:00

23:00  ~    24:00

 

找出时间  2009-02-03 14:23:00所属的区间段,对照一下不难发现答案应该为【14:00  ~    15:00】。

 

 

c#如何实现这一算法呢?

 

 

 List<string> mylist =new List<string> ();
            mylist.Add("0:00");
            mylist.Add("3:00");
            mylist.Add("4:30");
            mylist.Add("7:30");
            mylist.Add("11:00");
            mylist.Add("13:00");
            mylist.Add("14:00");
            mylist.Add("15:00");
            mylist.Add("18:30");
            mylist.Add("23:00");

DateTime nowTime = Convert.ToDateTime("2009-02-03 14:00:00");

 

MessageBox.Show(nowTime.ToString() + "出现在第" + (GetPoint(mylist, nowTime) + 1).ToString() + "个位置");

 

//被调用方法,返回出现的位置

 public int GetPoint(List<string> mylist, DateTime dt)
        {
            int PointID = -1;

            Int32 NewTime = Convert.ToInt32(dt.ToString("HHmm"));

            Int32[] array = new Int32[mylist.Count];

            for (int k = 0; k < mylist.Count; k++)
            {
                array[k] = Convert.ToInt32(mylist[k].ToString().Replace(":", ""));
            }
            Array.Sort(array);

            for (int j = 0; j < array.Length - 1; j++)
            {
                if (NewTime >= Convert.ToInt32(array[j].ToString()) && NewTime < Convert.ToInt32(array[j + 1].ToString()))
                {
                    PointID = j;
                    break;
                }
            }

            return PointID;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值