Previous topicNext topic
Help > 开发指南 > 编程基础 > 扩展功能 > 日期扩展 >
获得日期区间
名称 类型 描述
GetTimeIntervalDay 获得日期区间 获得指定日期的开始和结束时间
GetTimeIntervalHour 获得日期区间 获得指定小时的开始和结束时间
GetTimeIntervalMinute 获得日期区间 获得指定分钟的开始和结束时间
GetTimeIntervalMonth 获得日期区间 获得指定年份指定月份的开始和结束时间
GetTimeIntervalQuarter 获得日期区间 获得指定年份指定季度的开始和结束时间
GetTimeIntervalWeek 获得日期区间 得到一年中的某周的起始日和截止日 年 nYear 周数 nNumWeek 周始 out dtWeekStart 周终 out dtWeekeEnd
GetTimeIntervalWeekWork 获得日期区间 得到一年中的某周的起始日和截止日 周一到周五 工作日
GetTimeIntervalYear 获得日期区间 获得指定年份的开始和结束时间

这些属于DateTimeHelper中的静态函数。具体的参数说明可以在代码编辑器中智能提示中显示或通过代码编辑器右键“显示定义”来查看,这里就不单独列出来了。

这部分静态函数主要是为了做日期数据筛选时获得一个时间区间来筛选数据用的。典型的示例如下。

示例:

VB.Net
                                                           
'初始化一个日期
Dim dtDay As DateTime=Convert.ToDateTime("2022-07-06 13:25:36")
'什么参数都不传递
Dim dtTimeStart As DateTime
Dim dtTimeEnd As DateTime
Dim strFilterMain As String="发货日期>'{0}' and 发货日期<='{1}'"
'获得分钟区间
DateTimeHelper.GetTimeIntervalMinute(dtDay.Year,dtDay.Month,dtDay.Day,dtDay.Hour,dtDay.Minute,dtTimeStart,dtTimeEnd)
Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:发货日期>'2022-07-06 13:25:00' and 发货日期<='2022-07-06 13:26:00'
'获得小时区间
DateTimeHelper.GetTimeIntervalHour(dtDay.Year,dtDay.Month,dtDay.Day,dtDay.Hour,dtTimeStart,dtTimeEnd)
Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:发货日期>'2022-07-06 13:00:00' and 发货日期<='2022-07-06 14:00:00'
'获得当天区间
DateTimeHelper.GetTimeIntervalDay(dtDay.Year,dtDay.Month,dtDay.Day,dtTimeStart,dtTimeEnd)
Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:发货日期>'2022-07-06 0:00:00' and 发货日期<='2022-07-07 0:00:00'
'获得本月区间
DateTimeHelper.GetTimeIntervalMonth(dtDay.Year,dtDay.Month,dtTimeStart,dtTimeEnd)
Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:发货日期>'2022-07-01 0:00:00' and 发货日期<='2022-08-01 0:00:00'
'获得本季度区间
DateTimeHelper.GetTimeIntervalQuarter(dtDay.Year,dtDay.GetQuarterOfYear(),dtTimeStart,dtTimeEnd)
Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:发货日期>'2022-07-01 0:00:00' and 发货日期<='2022-10-01 0:00:00'
'获得当周区间
DateTimeHelper.GetTimeIntervalWeek(dtDay.Year,dtDay.GetWeekOfYear(),dtTimeStart,dtTimeEnd)
Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:发货日期>'2022-07-04 0:00:00' and 发货日期<='2022-07-08 0:00:00'
'获得本年度区间
DateTimeHelper.GetTimeIntervalYear(dtDay.Year,dtTimeStart,dtTimeEnd)
Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:发货日期>'2022-01-01 0:00:00' and 发货日期<='2023-01-01 0:00:00'
'获得当周工作日区间
If DateTimeHelper.GetTimeIntervalWeekWork(dtDay.Year,dtDay.GetWeekOfYear(),dtTimeStart,dtTimeEnd) Then
    Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:发货日期>'2022-07-04 0:00:00' and 发货日期<='2022-07-08 0:00:00'
Else
    Proj.MsgDebug.Add("未获得工作日区间")
End If
'获得第一周的工作日区间
If DateTimeHelper.GetTimeIntervalWeekWork(dtDay.Year,1,dtTimeStart,dtTimeEnd) Then
    Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:未获得工作日区间
Else
    Proj.MsgDebug.Add("未获得工作日区间")
End If
'获得最后一周的工作日区间
If DateTimeHelper.GetTimeIntervalWeekWork(dtDay.Year,dtDay.GetWeekAmount(),dtTimeStart,dtTimeEnd) Then
    Proj.MsgDebug.Add(strFilterMain,dtTimeStart,dtTimeEnd) '返回结果:发货日期>'2022-12-26 0:00:00' and 发货日期<='2022-12-30 0:00:00'
Else
    Proj.MsgDebug.Add("未获得工作日区间")
End If

 C#
// 初始化一个日期
DateTime dtDay = Convert.ToDateTime("2022-07-06 13:25:36");
// 什么参数都不传递
DateTime dtTimeStart;
DateTime dtTimeEnd;
string strFilterMain = "发货日期>'{0}' and 发货日期<='{1}'";
// 获得分钟区间
DateTimeHelper.GetTimeIntervalMinute(dtDay.Year, dtDay.Month, dtDay.Day, dtDay.Hour, dtDay.Minute,out dtTimeStart,out dtTimeEnd);
Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:发货日期>'2022-07-06 13:25:00' and 发货日期<='2022-07-06 13:26:00'
// 获得小时区间
DateTimeHelper.GetTimeIntervalHour(dtDay.Year, dtDay.Month, dtDay.Day, dtDay.Hour,out dtTimeStart,out dtTimeEnd);
Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:发货日期>'2022-07-06 13:00:00' and 发货日期<='2022-07-06 14:00:00'
// 获得当天区间
DateTimeHelper.GetTimeIntervalDay(dtDay.Year, dtDay.Month, dtDay.Day,out dtTimeStart,out dtTimeEnd);
Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:发货日期>'2022-07-06 0:00:00' and 发货日期<='2022-07-07 0:00:00'
// 获得本月区间
DateTimeHelper.GetTimeIntervalMonth(dtDay.Year, dtDay.Month,out dtTimeStart,out dtTimeEnd);
Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:发货日期>'2022-07-01 0:00:00' and 发货日期<='2022-08-01 0:00:00'
// 获得本季度区间
DateTimeHelper.GetTimeIntervalQuarter(dtDay.Year, dtDay.GetQuarterOfYear(),out dtTimeStart,out dtTimeEnd);
Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:发货日期>'2022-07-01 0:00:00' and 发货日期<='2022-10-01 0:00:00'
// 获得当周区间
DateTimeHelper.GetTimeIntervalWeek(dtDay.Year, dtDay.GetWeekOfYear(),out dtTimeStart,out dtTimeEnd);
Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:发货日期>'2022-07-04 0:00:00' and 发货日期<='2022-07-08 0:00:00'
// 获得本年度区间
DateTimeHelper.GetTimeIntervalYear(dtDay.Year,out dtTimeStart,out dtTimeEnd);
Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:发货日期>'2022-01-01 0:00:00' and 发货日期<='2023-01-01 0:00:00'
// 获得当周工作日区间
if (DateTimeHelper.GetTimeIntervalWeekWork(dtDay.Year, dtDay.GetWeekOfYear(),out dtTimeStart,out dtTimeEnd))
    Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:发货日期>'2022-07-04 0:00:00' and 发货日期<='2022-07-08 0:00:00'
else
    Proj.MsgDebug.Add("未获得工作日区间");
// 获得第一周的工作日区间
if (DateTimeHelper.GetTimeIntervalWeekWork(dtDay.Year, 1,out dtTimeStart,out dtTimeEnd))
    Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:未获得工作日区间
else
    Proj.MsgDebug.Add("未获得工作日区间");
// 获得最后一周的工作日区间
if (DateTimeHelper.GetTimeIntervalWeekWork(dtDay.Year, dtDay.GetWeekAmount(),out dtTimeStart,out dtTimeEnd))
    Proj.MsgDebug.Add(strFilterMain, dtTimeStart, dtTimeEnd); // 返回结果:发货日期>'2022-12-26 0:00:00' and 发货日期<='2022-12-30 0:00:00'
else
    Proj.MsgDebug.Add("未获得工作日区间");