date time difference

B

bbawa1

Hi,

I have a table which has a field ItemsReceived of type datetime. I
have a grid view which has two columns.

In first column i have to show the data from field ItemsReceived and
in second column I have to show
difference between Currenttime and date from ItemReceived. How can I
do that.

e'g

ItemRecieved Difference
6/13/2007 12:38am 1d 21h 45m
6/13/2007 3:54pm 1d 06h 10m
6/15/2007 12:26pm 34m

So the second coulmn displays the difference of current time minus
ItemRecieved. the format shouild be <mintues>m,
or<hours>h, <mintues>m, or <days>d.

How can I do that.

Thanks in advance
 
G

Guest

Hi there,

I prepared an example that you get you on the right track:

<script runat="server">

protected void Page_Load(object sender, EventArgs e)
{
gridView.DataSource = GetData();
gridView.DataBind();
}

private System.Data.DataTable GetData()
{
System.Data.DataTable table =
new System.Data.DataTable();

table.Columns.Add("Id", typeof(int));
table.Columns.Add("ItemRecieved", typeof(DateTime));
table.Columns.Add("Difference", typeof(TimeSpan));
//t.ColumnChanged += new DataColumnChangeEventHandler(t_ColumnChanged);
table.ColumnChanged +=
new System.Data.DataColumnChangeEventHandler(table_ColumnChanged);

for (int i = 0; i < 10; i++)
{
System.Data.DataRow row = table.NewRow();
row[0] = i;
row[1] = DateTime.Now.AddDays((double)i);
table.Rows.Add(row);
}

return table;
}

private void table_ColumnChanged(object sender,
System.Data.DataColumnChangeEventArgs e)
{
if (e.Column.ColumnName == "ItemRecieved")
{
DateTime date = (DateTime)e.Row["ItemRecieved"];
e.Row["Difference"] = DateTime.Now - date;
}
}
</script>

<asp:GridView runat="server" ID="gridView"
AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Id" />
<asp:BoundField DataField="ItemRecieved" />
<asp:BoundField DataField="Difference"
DataFormatString="{0:-d.hh:mm:ss}" />
</Columns>
</asp:GridView>

Hope this helps
 
B

bbawa1

Hi there,

I prepared an example that you get you on the right track:

<script runat="server">

protected void Page_Load(object sender, EventArgs e)
{
gridView.DataSource = GetData();
gridView.DataBind();

}

private System.Data.DataTable GetData()
{
System.Data.DataTable table =
new System.Data.DataTable();

table.Columns.Add("Id", typeof(int));
table.Columns.Add("ItemRecieved", typeof(DateTime));
table.Columns.Add("Difference", typeof(TimeSpan));
//t.ColumnChanged += new DataColumnChangeEventHandler(t_ColumnChanged);
table.ColumnChanged +=
new System.Data.DataColumnChangeEventHandler(table_ColumnChanged);

for (int i = 0; i < 10; i++)
{
System.Data.DataRow row = table.NewRow();
row[0] = i;
row[1] = DateTime.Now.AddDays((double)i);
table.Rows.Add(row);
}

return table;

}

private void table_ColumnChanged(object sender,
System.Data.DataColumnChangeEventArgs e)
{
if (e.Column.ColumnName == "ItemRecieved")
{
DateTime date = (DateTime)e.Row["ItemRecieved"];
e.Row["Difference"] = DateTime.Now - date;
}}

</script>

<asp:GridView runat="server" ID="gridView"
AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Id" />
<asp:BoundField DataField="ItemRecieved" />
<asp:BoundField DataField="Difference"
DataFormatString="{0:-d.hh:mm:ss}" />
</Columns>
</asp:GridView>

Hope this helps

--
Milosz



I have a table which has a field ItemsReceived of type datetime. I
have a grid view which has two columns.
In first column i have to show the data from field ItemsReceived and
in second column I have to show
difference between Currenttime and date from ItemReceived. How can I
do that.

ItemRecieved Difference
6/13/2007 12:38am 1d 21h 45m
6/13/2007 3:54pm 1d 06h 10m
6/15/2007 12:26pm 34m
So the second coulmn displays the difference of current time minus
ItemRecieved. the format shouild be <mintues>m,
or<hours>h, <mintues>m, or <days>d.
How can I do that.
Thanks in advance- Hide quoted text -

- Show quoted text -

Here I am grabbing Itemrecieved and ID from the tables. I am using
the following query. In your code where should I use that query to get
other fields.

select tck.tcktreceived, tck.ticketid, tckmsg.tcktmessage
from tbtickets tck inner join tbticketsmessages tckmsg
on tck.ticketid = tckmsg.ticketid.
 
G

Guest

Howdy,

Pseudocode:

DataTable table = new DataTable();

table.Columns.Add("Difference", typeof(TimeSpan));
table.ColumnChanged +=
new System.Data.DataColumnChangeEventHandler(table_ColumnChanged);

using (SqlConnection connection = new SqlConnection(ConnectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
adapter.Fill(table);
}

You should be fine from this point.
--
Milosz


Hi there,

I prepared an example that you get you on the right track:

<script runat="server">

protected void Page_Load(object sender, EventArgs e)
{
gridView.DataSource = GetData();
gridView.DataBind();

}

private System.Data.DataTable GetData()
{
System.Data.DataTable table =
new System.Data.DataTable();

table.Columns.Add("Id", typeof(int));
table.Columns.Add("ItemRecieved", typeof(DateTime));
table.Columns.Add("Difference", typeof(TimeSpan));
//t.ColumnChanged += new DataColumnChangeEventHandler(t_ColumnChanged);
table.ColumnChanged +=
new System.Data.DataColumnChangeEventHandler(table_ColumnChanged);

for (int i = 0; i < 10; i++)
{
System.Data.DataRow row = table.NewRow();
row[0] = i;
row[1] = DateTime.Now.AddDays((double)i);
table.Rows.Add(row);
}

return table;

}

private void table_ColumnChanged(object sender,
System.Data.DataColumnChangeEventArgs e)
{
if (e.Column.ColumnName == "ItemRecieved")
{
DateTime date = (DateTime)e.Row["ItemRecieved"];
e.Row["Difference"] = DateTime.Now - date;
}}

</script>

<asp:GridView runat="server" ID="gridView"
AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Id" />
<asp:BoundField DataField="ItemRecieved" />
<asp:BoundField DataField="Difference"
DataFormatString="{0:-d.hh:mm:ss}" />
</Columns>
</asp:GridView>

Hope this helps

--
Milosz



I have a table which has a field ItemsReceived of type datetime. I
have a grid view which has two columns.
In first column i have to show the data from field ItemsReceived and
in second column I have to show
difference between Currenttime and date from ItemReceived. How can I
do that.

ItemRecieved Difference
6/13/2007 12:38am 1d 21h 45m
6/13/2007 3:54pm 1d 06h 10m
6/15/2007 12:26pm 34m
So the second coulmn displays the difference of current time minus
ItemRecieved. the format shouild be <mintues>m,
or<hours>h, <mintues>m, or <days>d.
How can I do that.
Thanks in advance- Hide quoted text -

- Show quoted text -

Here I am grabbing Itemrecieved and ID from the tables. I am using
the following query. In your code where should I use that query to get
other fields.

select tck.tcktreceived, tck.ticketid, tckmsg.tcktmessage
from tbtickets tck inner join tbticketsmessages tckmsg
on tck.ticketid = tckmsg.ticketid.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,734
Messages
2,569,441
Members
44,832
Latest member
GlennSmall

Latest Threads

Top