Formatando Horas com mais de 24 horas no C# utilizando a classe TimeSpan

Boa tarde galera, me deparei com esta situação, formatar mais de de 24 horas com C#, manipular data é muito simples com C#, porém quando se trata de somar um período com mais de 24h dá um certo trabalho.

Eu encontrei neste site uma reposta com VB e fiz um exemplo em C#.
Fonte: http://stackoverflow.com/questions/3505230/format-timespan-greater-than-24-hour

Confiram:
Classe:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplicationTest
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)

{

}

protected void btn_submit(object sender, EventArgs e)
{
string[] dtHrIni = txtDataInicial.Text.Split(‘ ‘);
string[] dtIni = dtHrIni[0].ToString().Split(‘/’);
string[] hrIni = dtHrIni[1].ToString().Split(‘:’);

string[] dtHrFim = txtDataFinal.Text.Split(‘ ‘);
string[] dtFim = dtHrFim[0].ToString().Split(‘/’);
string[] hrFim = dtHrFim[1].ToString().Split(‘:’);

DateTime d1 = new DateTime(int.Parse(dtIni[2]), int.Parse(dtIni[1]), int.Parse(dtIni[0]), int.Parse(hrIni[0]), int.Parse(hrIni[1]), int.Parse(hrIni[2]));
DateTime d2 = new DateTime(int.Parse(dtFim[2]), int.Parse(dtFim[1]), int.Parse(dtFim[0]), int.Parse(hrFim[0]), int.Parse(hrFim[1]), int.Parse(hrFim[2]));

TimeSpan tres = d2.Subtract(d1);

result.Text = String.Format(“{0}:{1:d2}:{2:d2}”, (Math.Truncate(tres.TotalHours)), tres.Minutes, tres.Seconds);
}
}
}

ASPx
<%@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”Default.aspx.cs” Inherits=”WebApplicationTest._Default” %>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“>
<head runat=”server”>
<title></title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<div id=”linha1″>
<div id=”col1″>
Data Inicial:
</div>
<div id=”col2″>
<asp:TextBox ID=”txtDataInicial” runat=”server”></asp:TextBox></div>
</div>
<div id=”linha2″>
<div id=”col3″>
Data Final:
</div>
<div id=”col4″>
<asp:TextBox ID=”txtDataFinal” runat=”server”></asp:TextBox></div>
</div>
<div id=”linha3″>
<div id=”col5″>
<asp:Button ID=”btnSubmit” runat=”server” Text=”Submit” OnClick=”btn_submit” /></div>
</div>
O Resultado é: <span style=”color:Red;”><asp:Label ID=”result” runat=”server” ></asp:Label></span>
</div>
</form>
</body>
</html>

Agora basta criar o projeto no Visual Studio, baixar o arquivo compactado em anexo e brincar um pouco com C#!

Baixe o arquivo aqui >> WebApplicationTest. 

OBS: Projeto do Visual Studio 2008, é preciso renomear este arquivo para a extensão .rar.

At++

See You Later!!
Jesus

Siga-me no twitter @jcJesus
Facebook: http://www.facebook.com/juliocsdejesus
Siga no twitter @FamiiliaJesus
Jesus´s Family Blog´s http://famjesus.wordpress.com/
Fã page Facebook: http://www.facebook.com/pages/Fam%C3%ADlia-Jesus/156485731086658
Ouça nossas músicas grátis no:
My Space: http://www.myspace.com/familia_jesus

Cifras: http://www.cifraclub.com.br/familia-jesus/
PalcoMP3: http://palcomp3.com/familiajesus

Dê um RT! Conheça a @FamliaJesus. Acesse: http://mysp.ac/iBq0k5 e Ouça gratuitamente! Há 24 anos evangelizando!

Anúncios

Uma resposta para “Formatando Horas com mais de 24 horas no C# utilizando a classe TimeSpan

  1. Muito bom, apesar de .NET não fazer parte da minha vida valeu a dica.

    Como a gente nao sabe o dia de amanha, vai que eu passe a utilizar ai ja sei aonde procurar.

    Coloca mais coisas sobre esse mundo para mim ainda desconhecido.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s