Time Delta in Python - HackerRank solution

Solution for hackerRank problem Time Delta in Python


Problem :

When users post an update on social media,such as a URL, image, status update etc., other users in their network are able to view this new post on their news feed. Users can also see exactly when the post was published, i.e, how many hours, minutes or seconds ago.

Since sometimes posts are published and viewed in different time zones, this can be confusing. You are given two timestamps of one such post that a user can see on his newsfeed in the following format:

Day dd Mon yyyy hh:mm:ss +xxxx

Here +xxxx represents the time zone. Your task is to print the absolute difference (in seconds) between them.

Input Format

The first line contains T, the number of testcases.

Each testcase contains  2 lines, representing time t1 and time t2.

Constraints

  • Input contains only valid timestamps
  • year <= 3000

Output Format

Print the absolute difference (t1-t2)  in seconds.

Sample Input 0

2

Sun 10 May 2015 13:54:36 -0700

Sun 10 May 2015 13:54:36 -0000

Sat 02 May 2015 19:54:36 +0530

Fri 01 May 2015 13:54:36 -0000


Sample Output 0

25200

88200

Explanation 0

In the first query, when we compare the time in UTC for both the time stamps, we see a difference of 7 hours. which is  7 x 3600 seconds or 25200  seconds.


Similarly, in the second query, time difference is 5 hours and 30 minutes for time zone adjusting for that we have a difference of 1 day and 30 minutes. Or 24 x 3600 + 30 x 60 => 88200.


Code :

#!/bin/python3

import math

import os

import random

import re

import sys

from datetime import datetime


# Complete the time_delta function below.

def time_delta(t1, t2):

    time_1 = datetime.strptime(t1, '%a %d %b %Y %H:%M:%S %z')

    time_2 = datetime.strptime(t2, '%a %d %b %Y %H:%M:%S %z')

    return str(int(abs((time_1-time_2).total_seconds())))


if __name__ == '__main__':

    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    t = int(input())

    for t_itr in range(t):

        t1 = input()

        t2 = input()

        delta = time_delta(t1, t2)

        fptr.write(delta + '\n')

    fptr.close()



Comments

Popular posts from this blog

Finding the percentage in python - HackerRank solution

HackerRank challenges with solutions (Rearrangement, Formula, Word sorting, Numbers, Sentence)

What's your name, Tuple - HackerRank solution in python