[英]how to calculate days between two dates using datatable and datarow in gridview?
public void BindGrid(int rowcount)
{
btnsubmit.Visible = true;
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("Employee ID", typeof(String)));
dt.Columns.Add(new System.Data.DataColumn("Leave Type", typeof(String)));
dt.Columns.Add(new System.Data.DataColumn("From", typeof(String)));
dt.Columns.Add(new System.Data.DataColumn("To", typeof(String)));
dt.Columns.Add(new System.Data.DataColumn("No:of Days", typeof(String)));
if (ViewState["CurrentData"] != null)
{
for (int i = 0; i < rowcount + 1; i++)
{
dt = (DataTable)ViewState["CurrentData"];
if (dt.Rows.Count > 0)
{
dr = dt.NewRow();
dr[0] = dt.Rows[0][0].ToString();
}
}
dr = dt.NewRow();
dr[0] = lblempID.Text;
dr[1] = ddlleavetype.SelectedItem.Text.ToString();
dr[2] = txtfrom.Text.ToString();
dr[3] = txtto.Text.ToString();
dt.Rows.Add(dr);
}
else
{
dr = dt.NewRow();
dr[0] = lblempID.Text;
dr[1] = ddlleavetype.SelectedItem.Text.ToString();
dr[2] = txtfrom.Text.ToString();
dr[3] = txtto.Text.ToString();
dt.Rows.Add(dr);
}
// If ViewState has a data then use the value as the DataSource
if (ViewState["CurrentData"] != null)
{
gvLeave.DataSource = (DataTable)ViewState["CurrentData"];
gvLeave.DataBind();
}
else
{
// Bind GridView with the initial data assocaited in the DataTable
gvLeave.DataSource = dt;
gvLeave.DataBind();
}
// Store the DataTable in ViewState to retain the values
ViewState["CurrentData"] = dt;
}
在我的頁面中具有“開始日期”文本框和“結束日期”文本框..我想計算兩個日期之間的時間,請幫助我
如果它們在文本框中,則需要首先使用DateTime.Parse
對其進行解析。 這是在假設字符串格式正確的前提下
DateTime myDate = DateTime.Parse(myDateString);
要計算兩個日期之間的天數,您可以嘗試以下操作
TimeSpan span =date1-date2;
var days = span.TotalDays;
我對DataTable對象不是很熟悉,因此可以將這個答案作為一個想法。 :-)
為什么不使用實際類型指定行?
dt.Columns.Add(new System.Data.DataColumn("From", typeof(DateTime)));
dt.Columns.Add(new System.Data.DataColumn("To", typeof(DateTime)));
dt.Columns.Add(new System.Data.DataColumn("No:of Days", typeof(int)));
然后,您可以像dr[2] = DateTime.Parse(txtfrom.Text.ToString())
一樣解析txtfrom
的數據,並將其分配給您的DataRow。 txtto也是如此。
之后,您可以使用以下方法計算兩次之間的天數:
dr[4] = (int)((dr[2] -dr[3]).TotalDays);
如果這不起作用,請嘗試將解析的日期保存在這樣的對象中:
DateTime from = DateTime.Parse(txtfrom.Text.ToString());
DateTime to = ...;
TimeSpan t1 = to - from;
dt[4] = (int)(t1.TotalDays);
試試這個代碼:
Var Day= DateTime.Parse(todate.Text).Subtract(DateTime.Parse(fromdate.Text)).Days;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.