C# időpontok összeadása

Címkék
C# időpontok összeadása
2019-11-06T17:55:22+01:00
2019-11-08T20:59:37+01:00
2022-10-15T21:16:31+02:00
P_Norbi_901005
Sziasztok!

Olyan kérdésem lenne hogy hogyan célszerű két időpontot összeadni

pl 08:21 + 08:40 +16:20 =33:21

Ezeket az adatokat eredetileg stringként olvastam be egy fájlból majd Timespan-nel átalakítottam(ezt találtam a neten) de tovább nem jutottam ( az adatok 2 oszlopban vannak tárolva külön a be és külön a kilépések és az oszlopok utolsó soraiban szeretném őket összeadni. )
Favágó módszerrel meg tudom csinálni, szétszedem órára és percre majd {ki(óra*60 +perc )}- {be (óra* 60+ perc)} -napok száma*480 lesz a megoldás 
De ez kb 3-4 + lépés nem tudom hogy van e olyan megoldás amivel nem kell az időpontokat szétvágnom.


Köszönöm szépen a segítséget előre is!
Mutasd a teljes hozzászólást!
Hali!

… majd Timespan-nel átalakítottam(ezt találtam a neten)…

Akkor miért nem haladsz tovább ezen az úton? Lazán összeadhatod a TimeSpan objektumokat (de ha ez nem tetszik, akkor használhatod az Add() metódust is) – természetesen, akár kivonást is végezhetsz. Például:
using System; using System.Collections.Generic; public class Program { public static void Main() { List<TimeSpan> intervals = new List<TimeSpan>(); TimeSpan sum = new TimeSpan(0); intervals.Add(TimeSpan.Parse("08:21")); intervals.Add(TimeSpan.Parse("08:40")); intervals.Add(TimeSpan.Parse("16:20")); foreach(TimeSpan interval in intervals) { sum += interval; } Console.WriteLine("{0:00}:{1:00}", (int) sum.TotalHours, sum.Minutes); } }
Mutasd a teljes hozzászólást!

  • Köszönöm megpróbálom így!
    Próbálkoztam egy for ciklussal összeadni az adatokat úgy mint ha simán int-t adnék össze de sajnos nem volt jó.
    Mutasd a teljes hozzászólást!
  • Pedig mennie kell:

    List<TimeSpan> tslist = new List<TimeSpan>(); tslist.Add(new TimeSpan(08, 25, 00)); tslist.Add(new TimeSpan(12, 22, 00)); tslist.Add(new TimeSpan(02, 12, 00)); TimeSpan tsossz = new TimeSpan(0, 0, 0); foreach (TimeSpan ts in tslist) { tsossz += ts; } DateTime dtossz = new DateTime((tsossz.Ticks)); Console.WriteLine(dtossz);
    Mutasd a teljes hozzászólást!
  • > hogyan célszerű két időpontot összeadni?

    Csak a kiváncsiság kedvéért: ha ismerjük két személy születésének időpontját (pl 1970-03-01 15:40:20, és 2010-02-01 04:00:01), akkor mit értünk ezek összegén?
    Mutasd a teljes hozzászólást!
  • Szia!

    Elnézést, de ... miért akarod összezavarni a kérdezőt?
    Hol van szó DÁTUM összeadásáról?

    Pl. Laresz adatai alapján:
    Ha 8:25:00-kor elkezd dolgozni egy melós, 12:22:00 a munkavégzés ideje és 2:12:00 az út hazáig, akkor keressük azt az időpontot, amikor hazaérkezik.

    Hol van ebben a feladatban dátumhoz kapcsolódó kérdés
    A kérdező nem ezt akarja tudni.
    Mutasd a teljes hozzászólást!
  • Ezt a dolgot 'időtartam'-nak hívják, nem 'időpont'-nak.
    Igaz, hogy pl. két időpontnak, bár nincs összege, de van különbsége (ami időtartam), és van átlaga (ami időpont).
    Mutasd a teljes hozzászólást!
  • Szia!

    Ebben viszont igazad van!

    Én valóban hazaérkezési időpontot írtam, nem pedig a munkakezdéstől a hazaérkezésig eltelt időtartamot.
    Ráadásul még kevertem is a kettőt.
    (mert a 8:25:00 időpont, a másik kettő pedig időtartam)

    Bár, ha belegondolok ... ha a 8:25:00 időponthoz hozzáadom a két időtartamot, kapok egy újabb időpontot.
    Ha tudom, hogy mikor kezdett a melós dolgozni, a további két időtartam alapján kiszámítható, mi az az időpont, mielőtt be kell fejeznem a neje "inzultálását".
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Először is köszönöm szépen a segítséget sikerült megoldanom netangel kódja alapján. Köszönöm szépen!
    Azért így tettem fel így a kérdést mert ezek az időpontok a beblokkolások. Ömlesztve kapok egy listát be és kiblokkolásokról (persze be után mindig ki van, kivétel erősíti a szabályt... :) ) 
    Persze lehetne úgy is h ki - be időpont = ennyit dolgozott a munkás 1 nap (időtartam) és akkor időtartamokat kéne összeadni ha több napot akarok nézni
    Én viszont úgy álltam neki h külön vettem a be ill a ki időpontokat ha ezeket külön-külön összeadom majd a végén ki  - be akkor szintén  uazt kapom.
    Mutasd a teljes hozzászólást!
  • Nahát, ez tök jó. Legalábbis amíg nem lesz éjszakai műszak.
    Mutasd a teljes hozzászólást!
Címkék
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd