none
Como usar o DateDiff no C# RRS feed

  • Pergunta

  • Boa tarde

    Criei uma função em vb.net para subtrair datas, funciona bem, estou tentando converter para C# mas não consigo usar o DateDiff, abaixo segue a função em vb.net, se alguém souber como usar me ajuda por favor:

    Public Function subtrairDatas(ByVal _dataPrincipal As String, ByVal _dataComparar As String) As Integer
            Dim dataPrincipal As Date = _dataPrincipal.ToString.Replace("-", "/")
            Dim dataComparar As Date = _dataComparar.ToString.Replace("-", "/")
    
            Return Convert.ToInt32(DateDiff(DateInterval.Day, dataComparar, dataPrincipal))
        End Function

    segunda-feira, 8 de abril de 2013 16:59

Respostas

  • Olá Alexandre,

    Segue um exemplo usando TimeSpan...

    DateTime dt1 = DateTime.Now;
    DateTime dt2 = new DateTime(2012,01,01);
    TimeSpan ts1 = dt1.Subtract(dt2);
    string total = string.Format("{0}:{1}:{2}", Convert.ToInt64(ts1.TotalHours), ts1.Minutes, ts1.Seconds);

    Este comando vai fazer algo assim (Hoje - 01/01/2012)

    Abraço!!!

    • Marcado como Resposta Alexandre CCarmo segunda-feira, 8 de abril de 2013 17:26
    segunda-feira, 8 de abril de 2013 17:12
  • Boa tarde Alexandre,

    Seu método serve apenas para subtrair as datas? Isso pode te ajudar?

    public int SubtrairData(DateTime data1, DateTime data2)
    {
         return (data1 - data2).Days;
    }
    ou usando passando a data como string:

    private int SubtrairData(string data1, string data2)
    {
                return (DateTime.Parse(data1) - DateTime.Parse(data2)).Days;
    }

    Na verdade seria subtrair dois objetos de data(DateTime)...


    segunda-feira, 8 de abril de 2013 17:10
  • Sua função:

    public TimeSpan SubtrairData(DateTime _DataPrincipal, DateTime _DataAComparar) {
                return _DataPrincipal.Subtract(_DataAComparar);
            } 

    Abraço!!!
    • Marcado como Resposta Alexandre CCarmo segunda-feira, 8 de abril de 2013 17:26
    segunda-feira, 8 de abril de 2013 17:16

Todas as Respostas

  • Boa tarde Alexandre,

    Seu método serve apenas para subtrair as datas? Isso pode te ajudar?

    public int SubtrairData(DateTime data1, DateTime data2)
    {
         return (data1 - data2).Days;
    }
    ou usando passando a data como string:

    private int SubtrairData(string data1, string data2)
    {
                return (DateTime.Parse(data1) - DateTime.Parse(data2)).Days;
    }

    Na verdade seria subtrair dois objetos de data(DateTime)...


    segunda-feira, 8 de abril de 2013 17:10
  • Olá Alexandre,

    Segue um exemplo usando TimeSpan...

    DateTime dt1 = DateTime.Now;
    DateTime dt2 = new DateTime(2012,01,01);
    TimeSpan ts1 = dt1.Subtract(dt2);
    string total = string.Format("{0}:{1}:{2}", Convert.ToInt64(ts1.TotalHours), ts1.Minutes, ts1.Seconds);

    Este comando vai fazer algo assim (Hoje - 01/01/2012)

    Abraço!!!

    • Marcado como Resposta Alexandre CCarmo segunda-feira, 8 de abril de 2013 17:26
    segunda-feira, 8 de abril de 2013 17:12
  • Sua função:

    public TimeSpan SubtrairData(DateTime _DataPrincipal, DateTime _DataAComparar) {
                return _DataPrincipal.Subtract(_DataAComparar);
            } 

    Abraço!!!
    • Marcado como Resposta Alexandre CCarmo segunda-feira, 8 de abril de 2013 17:26
    segunda-feira, 8 de abril de 2013 17:16
  • Fabio entendi, obrigado pela ajuda.

    Bruno o que você explicou também me é válido, obrigado

    segunda-feira, 8 de abril de 2013 17:26