X龙@China .Net 'blog

需要的不仅仅是工作,而是通过努力得来的美好将来。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

验证开始日期和结束日期

Posted on 2011-03-08 13:26  X龙  阅读(440)  评论(0编辑  收藏  举报
/// <summary>
        
/// 验证结束日期大于等于开始日期
        
/// </summary>
        
/// <param name="startDate">开始日期</param>
        
/// <param name="endDate">结束日期</param>
        
/// <param name="curDbField">验证日期对应的数据库字段</param>
        
/// <param name="filterExpression">条件</param>
        
/// <returns>true/false</returns>
        private bool ValidOracleStartEndDate(string startDate, string endDate, string curDbField, out string filterExpression)
        {
            filterExpression 
= string.Empty;
            
string startDateFilter = " AND {1} >= to_date('{0}','YYYY-MM-DD HH24:MI:SS') ";
            
string endDateFilter = " AND {1} < to_date('{0}','YYYY-MM-DD HH24:MI:SS') ";

            
// 开始、结束日期为空
            if ((startDate == null || startDate.Length == 0&& (endDate == null || endDate.Length == 0))
            {
                
return true;
            }

            DateTime sDate 
= WebCommon.ToStartDateTime(startDate);
            DateTime eDate 
= WebCommon.ToEndDateTime(endDate);

            
// 开始日期大于结束日期
            if (sDate > eDate)
            {
                
return false;
            }
            
else // 开始日期小于等于结束日期(正确)
            {
                eDate 
= eDate == DateTime.MaxValue ?
                    DateTime.MaxValue : eDate.AddDays(
1);
                filterExpression 
= string.Format(startDateFilter, sDate, curDbField);
                filterExpression 
+= string.Format(endDateFilter, eDate, curDbField);
                
return true;
            }
        }
        /// <summary>
        
/// 验证结束日期大于等于开始日期
        
/// </summary>
        
/// <param name="startDate">开始日期</param>
        
/// <param name="endDate">结束日期</param>
        
/// <param name="curDbField">验证日期对应的数据库字段</param>
        
/// <param name="filterExpression">条件</param>
        
/// <returns>true/false</returns>
        public static bool ValidSqlServerStartEndDate(string startDate, string endDate, string curDbField, out string filterExpression)
        {
            filterExpression 
= string.Empty;
            
string startDateFilter = " AND convert(varchar(10),{1},120) >= '{0}' ";
            
string endDateFilter = " AND convert(varchar(10),{1},120) < '{0}' ";

            
// 开始、结束日期为空
            if ((startDate == null || startDate.Length == 0&& (endDate == null || endDate.Length == 0))
            {
                
return true;
            }

            DateTime sDate 
= Object2StartDate(startDate);
            DateTime eDate 
= Object2EndDate(endDate);

            
// 开始日期大于结束日期
            if (sDate > eDate)
            {
                
return false;
            }
            
else // 开始日期小于等于结束日期(正确)
            {
                eDate 
= eDate == DateTime.MaxValue ?
                    DateTime.MaxValue : eDate.AddDays(
1);
                filterExpression 
= string.Format(startDateFilter, sDate.ToString("yyyy-MM-dd"), curDbField);
                filterExpression 
+= string.Format(endDateFilter, eDate.ToString("yyyy-MM-dd"), curDbField);
                
return true;
            }
        }
点击这里给我发消息http://wp.qq.com/index.html