注册 登录
编程论坛 ASP.NET技术论坛

[求助]日期问题

mlrh3838 发布于 2007-09-10 11:35, 421 次点击
下面是GridView中的一段
<asp:TemplateField HeaderText="工龄" SortExpression="工龄">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("工龄") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<%
string thisday = DateTime.Now.ToString();
%>
<asp:Label ID="Label1" runat="server" Text='<% thisDay %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

我在数据库的字段类型是 Datetime,我不想读出,是经过与 当前日期-入单位日期=工龄,把这个员工有多少年工龄送显出来,请问我黄色和红色部分应该怎样写,或者哪位高人指点下高见
4 回复
#2
skyland842007-09-10 11:38
可以整合到红色区域一起写~!不过红色区域 是<%= thisDay %>才能输出
#3
mlrh38382007-09-10 11:59
我绿色部分并没有写完,只是列出当前日期,还没有减去数据库中的"入单位日期"
<%
string thisday = DateTime.Now.ToString();
string thisDay = thisday - <%# Bind("工龄") %>
%>

这里的红色部分不知道该怎么写

比如 "2007-9-1" - "2006-9-1" = 1
把这个"1"显示在页面上

[此贴子已经被作者于2007-9-10 12:01:03编辑过]

#4
thllilac2007-09-10 12:26

在sql语句里改一下试一试,如:
select 入单位日期,datediff(yy,入单位日期,getdate()) as 工龄 from table
或者:
在后台写一个方法如:
public string getGL(string RDWRQ)
{
int date1=Convert.ToInt32(RDWRQ).Year;
int date2=DateTime.Now.Year;
int gl=date2-date1;
return gl.ToString();
}

Label1.Text=getGL("入单位日期");
<asp:Label ID="Label1" runat="server" Text='<% getGL("入单位日期") %>'></asp:Label>

#5
mlrh38382007-09-10 14:28

谢谢楼上的,第一种方法我用了可以了,
第二种不行,这里错误,改了后,还是不送显

int date1=Convert.ToInt32(RDWRQ).Year; 好像是错误的
public string getGL(DateTime RDWRQ)
{
int date1=Convert.ToInt32(RDWRQ.Year);
......


}
1