仅显示工作日

时间:2016-08-09 10:30:07

标签: asp.net

我正在Asp.net创建一个网站。

我需要以下面的格式显示标签中的日期(任何控件)。(仅限工作日)。

例如:

2016年8月9日当天显示“2016年8月9日至2016年8月15日”
2016年8月8日的日期显示如 2016年8月9日至2016年8月15日
2016年11月8日的日期显示如 2016年8月9日至2016年8月15日
2016年12月8日的日期显示如 2016年8月9日至2016年8月15日
2016年8月13日当天展示 2016年8月9日至2016年8月15日
2016年8月14日当天显示 2016年8月9日至2016年8月15日
2016年8月15日当天展示 2016年8月9日至2016年8月15日

稍后

2016年8月16日当天显示 2016年8月16日至2016年8月22日
2016年8月17日当天显示 2016年8月16日至2016年8月22日
2016年8月18日当天展示 2016年8月16日至2016年8月22日
2016年8月19日当天显示 2016年8月16日至2016年8月22日
2016年8月20日当天展示 2016年8月16日至2016年8月22日
2016年8月21日当天显示 2016年8月16日至2016年8月22日
2016年8月22日当天显示 2016年8月16日至2016年8月22日

任何人都可以帮助任何逻辑。 如果您不清楚,请告诉我。

2 个答案:

答案 0 :(得分:0)

要获取当前日期,您可以使用DateTime.Now并获取当前日期+ 7天,您可以使用DateTime.Now.AddDays(7)

protected void Page_Load(object sender, EventArgs e)
{
    DateTime today = DateTime.Now;
    DateTime todayPlusSeven = DateTime.Now.AddDays(7);
    lblDate.Text = String.Format("{0:MM-dd-yyyy} to {1:MM-dd-yyyy}", today, todayPlusSeven);
}

答案 1 :(得分:-1)

宣布@Date日期时间
设置@Date =' 08/13/2016'
SELECT CASE DATEPART(工作日,@ Date)
当1那么 转换(VARCHAR(11),DATEADD(天,-2,@日期),101)
+'到' +
convert(varchar(11),DATEADD(day,4,@ Date),101)
 当2那么 转换(VARCHAR(11),DATEADD(天,-3,@日期),101)
+'到' +
convert(varchar(11),DATEADD(day,3,@ Date),101)
 当3那时 转换(VARCHAR(11),DATEADD(天,-4,@日期),101)
+'到' +
convert(varchar(11),DATEADD(day,2,@ Date),101)
 当4那时 转换(VARCHAR(11),DATEADD(天,-5,@日期),101)
+'到' +
convert(varchar(11),DATEADD(day,1,@ Date),101)
 当5那时 转换(VARCHAR(11),DATEADD(天,-6,@日期),101)
+'到' +
convert(varchar(11),DATEADD(day,0,@ Date),101)
 当6那时 转换(VARCHAR(11),DATEADD(天,0,@日期),101)
+'到' +
转换(VARCHAR(11),DATEADD(日,6,@日期),101)
  当7那时 转换(VARCHAR(11),DATEADD(天,-1,@日期),101)
+'到' +
 convert(varchar(11),DATEADD(day,5,@ Date),101)
  以日期范围结束