By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,152 Members | 2,039 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,152 IT Pros & Developers. It's quick & easy.

date time difference

P: n/a
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

Jun 15 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a
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_Col umnChanged);

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
"bb****@yahoo.com" wrote:
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

Jun 15 '07 #2

P: n/a
On Jun 15, 4:16 pm, Milosz Skalecki [MCAD] <mily...@DONTLIKESPAMwp.pl>
wrote:
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_Col umnChanged);

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

"bba...@yahoo.com" wrote:
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- 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.

Jun 16 '07 #3

P: n/a
Howdy,

Pseudocode:

DataTable table = new DataTable();

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

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

You should be fine from this point.
--
Milosz
"bb****@yahoo.com" wrote:
On Jun 15, 4:16 pm, Milosz Skalecki [MCAD] <mily...@DONTLIKESPAMwp.pl>
wrote:
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_Col umnChanged);

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

"bba...@yahoo.com" wrote:
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- 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.

Jun 16 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.