Usher
Usher

Reputation: 2146

is this possible to assign a value to TimeSpan?

I have to thank for the early help to advise the "Tick". Now am pretty much got in to my logic except one thing, i have a unix time in my database ,when i was trying to convert to real time and do the logic.

Sorry, let me describe the problem once again,

I have four different timestamp pulled out from DB (Start,End,Start1,End1) converted from unix to real time. am using the following code to do the conversion

DateTime = Convert.ToDateTime("1/1/1970").AddSeconds(SnapTo5Mins(Convert.ToDouble(UnixDate))).AddHours(GMTOFFset);

Problem here is,when the value is zero in the coloumn then the date time is returning like (1/1/1970).

for eg. my start value is zero in the database then it retruns (1/1/1970)

  1. Step 1: compare the timestamp is not equal to 1/1/1970 (origin time) step 2: if its not equal then do Break = End.Subtract(Start); Step 3: if its equal then assign the break value to zero or whatever step 4: repeat step 1,2,3 for start1 step 5: concatenate both break + break1

        DateTime Origin = new DateTime(1970, 1, 1, 12, 0, 0, 0);
        DateTime Start ="01/01/1970 12:00";
        DateTime End = 01/01/1970 12:00";
        DateTime Start1 ="02/10/2013 12:20";
        DateTime End1 = "02/10/2013 02:20";
        TimeSpan Break;,finalMealBreak1;
        if (Origin.Year != Start.Year)
        {
            Break = End.Subtract(Start);
        }
        else
        {
            Break = //Assign constant value zero 
        }
          if (Origin.Year != Start1.Year)
        {
            Break1 = End1.Subtract(Start1);//break1 value must be 2hrs
        }
        else
        {
            Break1 = //Assign constant value zero
        }
       TimeSpan FinalBreakResult = Break + Break1; (FinalBreakresult value suppose to be 2 hrs )
    

Thanks in advance

Upvotes: 0

Views: 10023

Answers (2)

Dan Saltmer
Dan Saltmer

Reputation: 2165

Not 100% sure what you are trying to get from the timespan, I think 0? But you can do a few things to get values.

TimeSpan.Zero // timespan of 0

DateTime.Now.TimeOfDay // returns a value of the current time in a timespan
                       // obviously also works with any datetime

TimeSpan.FromSeconds(100) // timespan with 100 seconds
                          // There are a few of these, like FromHours, FromDays

Edit: Using your code

DateTime Origin = new DateTime(1970, 1, 1, 12, 0, 0, 0);
DateTime Start = DateTime.Parse("01/01/1970 12:00:00");
DateTime End = DateTime.Parse("01/01/1970 12:00:00");
DateTime Start1 = DateTime.Parse("02/10/2013 12:20:00");
DateTime End1 = DateTime.Parse("02/10/2013 14:20:00");
TimeSpan Break, Break1;

if (Origin.Year != Start.Year)
{
    Break = End.Subtract(Start);
}
else
{
    Break = TimeSpan.Zero;
}
if (Origin.Year != Start1.Year)
{
    Break1 = End1.Subtract(Start1);//break1 value must be 2hrs
}
else
{
    Break1 = TimeSpan.Zero;
}

TimeSpan FinalBreakResult = Break + Break1;
// Value of FinalBreakResult is 2 hours

Upvotes: 3

Phillip Scott Givens
Phillip Scott Givens

Reputation: 5464

Of course. To add to @Dan Saltmer's answer:

DateTime then = DateTime.Now;
Thread.Sleep(500);
TimeSpan span = DateTime.Now - then;

Upvotes: 1

Related Questions