asp.net值班表排序问题

asp.net值班表排序问题,第1张

你的数组已经把顺序定好了呀。只要求出当日是周几,DateTime自带属性,就可以得到数组的下标呀。给个例子你,你建立一个aspx页面,放在form_load中就行。就是在后台拼了张<table>,没有样式,输出2016年所有员工的班次。

String[] employs = new String[6]{"张", "王", "李", "赵", "周", "吴"}

StringBuilder html = new StringBuilder()//生成一个前台的<Table>

html.Append("<Table style='border:1px solid black'>")

html.Append("<tr><td width='100'>日</td><td width='200'>一</td><td width='200'>二</td><td width='200'>三</td><td width='200'>四</td><td width='200'>五</td><td width='200'>六</td></tr>")

DateTime startDate = new DateTime(2016, 1, 1) //求出2016/1/1是周几,如周五,则前面的5个单元格都置空,不写内容,从第6个单元格开始写人名

int firstCell = (int)startDate.DayOfWeek//求周几

html.Append("<tr>")

for (int i = 0i <firstCelli++)

{

html.Append("<td></td>")

}

for (var now = startDatenow <startDate.AddYears(1)now = now.AddDays(1)) //循环一年

{

//根据周几求出当前的员工

int index = (int)now.DayOfWeek

string name = ""

if (index == 0)

{

name = "休息"//周日休

}

else

{

name = employs[index - 1]

}

html.AppendFormat("<td>{0}-{1}</td>", now.ToString("MM月dd日"), name)

if (index == (int)DayOfWeek.Saturday)

{

//周六就重起一行

html.Append("</tr><tr>")

}

}

html.Append("</tr>")

html.Append("</Table>")

Response.Write(html.ToString())

给你个思路吧.

这个我以前做过..不过现在要是再去把代码写出来就有点花时间了.

首先..你输入时间,和人名

例如:输入 sky,15:30 数据库中保存了这条记录

然后最主要的就是查询了.查询这个时间是谁来值班

首先..把当前的时候得到 datetime.now 然后用他来当条件查询

select 人名from table where 时间=DateTime.Now.ToShortTimeString()

建议你用时间段 例如:输入sky,15:30,17:30

查询的时候

select 人名from table where 时间1>DateTime.Now.ToShortTimeString()

and 时间2<DateTime.Now.ToShortTimeString()

如果是最外层的if语句if(!IsPostBack)不能执行,那是因为他只执行一次,在第一次打开页面时执行,其它时候刷新提交都不执行

如果是第二层if (Session["roleID"] != null)没有执行,那就是Session["roleID"] 为 null了

如果第三层if (Session["roleID"].ToString() == "1")没执行那就是Session["roleID"].ToString() 不等于 "1",这很好识别啊

就第一层比较特殊,第二层和第三层都和Session["roleID"]的值有关系,你只要添加监视,监视一下它的值是什么就行了


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/110202.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-11
下一篇2023-03-11

发表评论

登录后才能评论

评论列表(0条)

    保存