首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

怎么用VB实现将一天任意分成3段,判断当前时间在哪一段时间里

2012-03-05 
如何用VB实现将一天任意分成3段,判断当前时间在哪一段时间里?要求可以设置3段时间的起始点如1班7:30-17:05

如何用VB实现将一天任意分成3段,判断当前时间在哪一段时间里?
要求可以设置3段时间的起始点
如1班7:30-17:05
  2班17:05-0:05
  3班0:05-7:30
但是怎么判断当前时间是哪班的?特别是第二班的!

[解决办法]

VB.NET code
Public Function VerifyDatetimeTurn(ByVal objDateTime As DateTime) As Integer    Dim nextDay As DateTime = objDateTime.AddDays(1)    Dim turn1time As DateTime = New DateTime(objDateTime.Year, objDateTime.Month, objDateTime.Day, 7, 0, 0)    Dim turn2time As DateTime = New DateTime(objDateTime.Year, objDateTime.Month, objDateTime.Day, 17, 5, 0)    Dim turn3time As DateTime = New DateTime(nextDay.Year, nextDay.Month, nextDay.Day, 0, 5, 0)    If DateTime.Compare(objDateTime, turn1time) <= 0 Then        Return 3    ElseIf DateTime.Compare(objDateTime, turn2time) <= 0 Then        Return 1    ElseIf DateTime.Compare(objDateTime, turn3time) <= 0 Then        Return 2    Else        Return 3    End IfEnd Function
[解决办法]
给你写个随意设置n个时间段的demo:
C# code
using System;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            var 时间段 = new TimeSpan[] { TimeSpan.Parse("07:30:0"),                TimeSpan.Parse("17:05:0"),                 TimeSpan.Parse("0:05:00").Add(TimeSpan.FromHours(24)),                 TimeSpan.Parse("7:30:0").Add(TimeSpan.FromHours(24)) };            var 要判断的时间 = TimeSpan.Parse("18:10:00");            Console.WriteLine("在第{0}区间", 判断区间(时间段, 要判断的时间) + 1);            Console.ReadKey();        }        private static int 判断区间(TimeSpan[] 时间段, TimeSpan 要判断的时间)        {            if (要判断的时间 < 时间段[0])                要判断的时间 = 要判断的时间.Add(TimeSpan.FromHours(24));            for (var i = 0; i < 时间段.Length - 1; i++)                if (要判断的时间 >= 时间段[i] && 要判断的时间 <= 时间段[i + 1])                    return i;            return -1;        }    }}
[解决办法]
1. 对于所给出的24小时内时间段,假设一个时间比上一个时间段小(早),那么你就加上24小时时间。

2. 对于所要判断的时间,假设比时间段的第一个时间小(早),那么你就加上24小时时间。

3. 然后就可以直接遍历每一个区间来判断是否包含了。

热点排行