比较2个时间段是否有交集的方法

特容易绕晕,花了好长时间才写出来,郁闷死了

  1.         #region 判断时间段是否相交(道路和区域限速)
  2.         /// <summary>
  3.         /// 比较设置的结束时间
  4.         /// </summary>
  5.         /// <param name="endTime">设置的结束时间</param>
  6.         /// <param name="tableName">表名</param>
  7.         /// <param name="uVehicleCheck">控件对象</param>
  8.         /// <returns>true:时间相交;false:时间不相交</returns>
  9.         private bool compareEndTimeForSpeed(string layerID, string endTime, string tableName, GPS_5_0_Client.CommonControl.VehicleCheck.UVehicleCheck uVehicleCheck)
  10.         {
  11.             bool resualt = true;
  12.             string sqlstr = "";
  13.             for (int i = 0; i < uVehicleCheck.VehicleCollection.Count; i++)
  14.             {
  15.                 vehNo = uVehicleCheck.VehicleCollection[i].Text;
  16.                 string sql = "select vehiclekey from vehicleinfo where platenumber='" + uVehicleCheck.VehicleCollection[i].Text + "'";
  17.                 int vehID = int.Parse(GPS_5_0_Server.DBUtility.DbHelperOra.GetSingle(sql).ToString());
  18.                 if (layerID == "")
  19.                 {
  20.                     sqlstr = "select starttime,endtime from " + tableName + " where vehicleid=" + vehID;
  21.                 }
  22.                 else
  23.                 {
  24.                     sqlstr = "select starttime,endtime from " + tableName + " where vehicleid=" + vehID + " and layerid=" + int.Parse(layerID);
  25.                 }
  26.                 //string sqlstr2 = "select endtime from " + tableName + " where vehiclekey=" + vehID;
  27.                 DataSet ds = new DataSet();
  28.                 //DataSet ds_Start = new DataSet();
  29.                 //DataSet ds_end = new DataSet();
  30.                 ds = GPS_5_0_Server.DBUtility.DbHelperOra.Query(sqlstr);
  31.                 //ds_end = GPS_5_0_Server.DBUtility.DbHelperOra.Query(sqlstr2);
  32.                 if (ds.Tables[0].Rows.Count > 0)
  33.                 {
  34.                     for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
  35.                     {
  36.                         if (endTime.CompareTo(ds.Tables[0].Rows[j]["starttime"].ToString()) > 0 && endTime.CompareTo(ds.Tables[0].Rows[j]["endtime"].ToString()) <= 0)
  37.                         {
  38.                             resualt = true;
  39.                             break;
  40.                         }
  41.                         else
  42.                         {
  43.                             resualt = false;
  44.                         }
  45.                         //break;
  46.                     }
  47.                 }
  48.                 else
  49.                 {
  50.                     resualt = false;
  51.                 }
  52.             }
  53.             return resualt;
  54.         }
  55.         /// <summary>
  56.         /// 比较设置的开始时间
  57.         /// </summary>
  58.         /// <param name="startTime">设置的开始时间</param>
  59.         /// <param name="tableName">表名</param>
  60.         /// <param name="uVehicleCheck">控件对象</param>
  61.         /// <returns>true:时间相交;false:时间不相交</returns>
  62.         private bool compareStartTimeForSpeed(string layerID, string startTime, string tableName, GPS_5_0_Client.CommonControl.VehicleCheck.UVehicleCheck uVehicleCheck)
  63.         {
  64.             bool resualt = true;
  65.             string sqlstr = "";
  66.             for (int i = 0; i < uVehicleCheck.VehicleCollection.Count; i++)
  67.             {
  68.                 vehNo = uVehicleCheck.VehicleCollection[i].Text;
  69.                 string sql = "select vehiclekey from vehicleinfo where platenumber='" + uVehicleCheck.VehicleCollection[i].Text + "'";
  70.                 int vehID = int.Parse(GPS_5_0_Server.DBUtility.DbHelperOra.GetSingle(sql).ToString());
  71.                 if (layerID == "")
  72.                 {
  73.                     sqlstr = "select starttime,endtime from " + tableName + " where vehicleid=" + vehID;
  74.                 }
  75.                 else
  76.                 {
  77.                     sqlstr = "select starttime,endtime from " + tableName + " where vehicleid=" + vehID + " and layerid=" + int.Parse(layerID);
  78.                 }
  79.                 //string sqlstr2 = "select endtime from " + tableName + " where vehiclekey=" + vehID;
  80.                 DataSet ds = new DataSet();
  81.                 //DataSet ds_Start = new DataSet();
  82.                 //DataSet ds_end = new DataSet();
  83.                 ds = GPS_5_0_Server.DBUtility.DbHelperOra.Query(sqlstr);
  84.                 //ds_end = GPS_5_0_Server.DBUtility.DbHelperOra.Query(sqlstr2);
  85.                 if (ds.Tables[0].Rows.Count > 0)
  86.                 {
  87.                     for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
  88.                     {
  89.                         string s1 = ds.Tables[0].Rows[j]["starttime"].ToString();
  90.                         string s2 = ds.Tables[0].Rows[j]["endtime"].ToString();
  91.                         if (startTime.CompareTo(ds.Tables[0].Rows[j]["starttime"].ToString()) >= 0 && startTime.CompareTo(ds.Tables[0].Rows[j]["endtime"].ToString()) < 0)
  92.                         {
  93.                             resualt = true;
  94.                             break;
  95.                         }
  96.                         else
  97.                        {
  98.                             resualt = false;
  99.                         }
  100.                         //break;
  101.                     }
  102.                 }
  103.                 else
  104.                 {
  105.                     resualt = false;
  106.                 }
  107.             }
  108.             return resualt;
  109.         }
  110.         /// <summary>
  111.         /// 同时比较设置的开始时间和结束时间
  112.         /// </summary>
  113.         /// <param name="startTime">设置的开始时间</param>
  114.         /// <param name="endTime">设置的结束时间</param>
  115.         /// <param name="tableName">表名</param>
  116.         /// <param name="uVehicleCheck">控件对象</param>
  117.         /// <returns>true:时间相交;false:时间不相交</returns>
  118.         private bool compareStartTimeAndEndTime1ForSpeed(string layerID, string startTime, string endTime, string tableName, GPS_5_0_Client.CommonControl.VehicleCheck.UVehicleCheck uVehicleCheck)
  119.         {
  120.             bool resualt = true;
  121.             string sqlstr = "";
  122.             for (int i = 0; i < uVehicleCheck.VehicleCollection.Count; i++)
  123.             {
  124.                 vehNo = uVehicleCheck.VehicleCollection[i].Text;
  125.                 string sql = "select vehiclekey from vehicleinfo where platenumber='" + uVehicleCheck.VehicleCollection[i].Text + "'";
  126.                 int vehID = int.Parse(GPS_5_0_Server.DBUtility.DbHelperOra.GetSingle(sql).ToString());
  127.                 if (layerID == "")
  128.                 {
  129.                     sqlstr = "select starttime,endtime from " + tableName + " where vehicleid=" + vehID;
  130.                 }
  131.                 else
  132.                 {
  133.                     sqlstr = "select starttime,endtime from " + tableName + " where vehicleid=" + vehID + " and layerid=" + int.Parse(layerID);
  134.                 }
  135.                 //string sqlstr2 = "select endtime from " + tableName + " where vehiclekey=" + vehID;
  136.                 DataSet ds = new DataSet();
  137.                 //DataSet ds_Start = new DataSet();
  138.                 //DataSet ds_end = new DataSet();
  139.                 ds = GPS_5_0_Server.DBUtility.DbHelperOra.Query(sqlstr);
  140.                 //ds_end = GPS_5_0_Server.DBUtility.DbHelperOra.Query(sqlstr2);
  141.                 if (ds.Tables[0].Rows.Count > 0)
  142.                 {
  143.                     for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
  144.                     {
  145.                         if (startTime.CompareTo(ds.Tables[0].Rows[j]["starttime"].ToString()) >= 0 && endTime.CompareTo(ds.Tables[0].Rows[j]["endtime"].ToString()) <= 0)
  146.                         {
  147.                             resualt = true;
  148.                             break;
  149.                         }
  150.                         else
  151.                         {
  152.                             resualt = false;
  153.                         }
  154.                         //break;
  155.                     }
  156.                 }
  157.                 else
  158.                 {
  159.                     resualt = false;
  160.                 }
  161.             }
  162.             return resualt;
  163.         }
  164.         /// <summary>
  165.         /// 同时比较设置的开始时间和结束时间
  166.         /// </summary>
  167.         /// <param name="startTime">设置的开始时间</param>
  168.         /// <param name="endTime">设置的结束时间</param>
  169.         /// <param name="tableName">表名</param>
  170.         /// <param name="uVehicleCheck">控件对象</param>
  171.         /// <returns>true:时间相交;false:时间不相交</returns>
  172.         private bool compareStartTimeAndEndTime2ForSpeed(string layerID, string startTime, string endTime, string tableName, GPS_5_0_Client.CommonControl.VehicleCheck.UVehicleCheck uVehicleCheck)
  173.         {
  174.             bool resualt = true;
  175.             string sqlstr = "";
  176.             for (int i = 0; i < uVehicleCheck.VehicleCollection.Count; i++)
  177.             {
  178.                 vehNo = uVehicleCheck.VehicleCollection[i].Text;
  179.                 string sql = "select vehiclekey from vehicleinfo where platenumber='" + uVehicleCheck.VehicleCollection[i].Text + "'";
  180.                 int vehID = int.Parse(GPS_5_0_Server.DBUtility.DbHelperOra.GetSingle(sql).ToString());
  181.                 if (layerID == "")
  182.                 {
  183.                     sqlstr = "select starttime,endtime from " + tableName + " where vehicleid=" + vehID;
  184.                 }
  185.                 else
  186.                 {
  187.                     sqlstr = "select starttime,endtime from " + tableName + " where vehicleid=" + vehID + " and layerid=" + int.Parse(layerID);
  188.                 }
  189.                 //string sqlstr2 = "select endtime from " + tableName + " where vehiclekey=" + vehID;
  190.                 DataSet ds = new DataSet();
  191.                 //DataSet ds_Start = new DataSet();
  192.                 //DataSet ds_end = new DataSet();
  193.                 ds = GPS_5_0_Server.DBUtility.DbHelperOra.Query(sqlstr);
  194.                 //ds_end = GPS_5_0_Server.DBUtility.DbHelperOra.Query(sqlstr2);
  195.                 if (ds.Tables[0].Rows.Count > 0)
  196.                 {
  197.                     for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
  198.                     {
  199.                         if (startTime.CompareTo(ds.Tables[0].Rows[j]["starttime"].ToString()) <= 0 && endTime.CompareTo(ds.Tables[0].Rows[j]["endtime"].ToString()) >= 0)
  200.                         {
  201.                             resualt = true;
  202.                             break;
  203.                         }
  204.                         else
  205.                         {
  206.                             resualt = false;
  207.                         }
  208.                         //break;
  209.                     }
  210.                 }
  211.                 else
  212.                 {
  213.                     resualt = false;
  214.                 }
  215.             }
  216.             return resualt;
  217.         }
  218.         #endregion
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值