Files
EWF/library/text/parser/feed/src/support/feed_helpers.e
Jocelyn Fiat 5fee483fd9 Added FEED + FEED operator to merge two feeds.
Added FEED sorting routine.
Added FEED_ITEM.link: detachable FEED_LINK that represents the main feed link.
Comments.
2015-10-08 10:10:08 +02:00

87 lines
2.2 KiB
Plaintext

note
description: "Helpers routine for feed library."
date: "$Date$"
revision: "$Revision$"
class
FEED_HELPERS
feature -- Helpers
date_time (a_date_string: READABLE_STRING_32): DATE_TIME
-- "2015-08-14T10:34:13.493740Z"
-- "Sat, 07 Sep 2002 00:00:01 GMT"
local
i,j: INTEGER
s: READABLE_STRING_GENERAL
y,m,d,h,min: INTEGER
sec: REAL_64
htdate: HTTP_DATE
str: STRING_32
do
if a_date_string.count > 0 and then a_date_string.item (1).is_digit then
i := a_date_string.index_of ('-', 1)
if i > 0 then
s := a_date_string.substring (1, i - 1)
y := s.to_integer_32 -- Year
j := i + 1
i := a_date_string.index_of ('-', j)
if i > 0 then
s := a_date_string.substring (j, i - 1)
m := s.to_integer_32 -- Month
j := i + 1
i := a_date_string.index_of ('T', j)
if i = 0 then
i := a_date_string.index_of (' ', j)
end
if i = 0 then
i := a_date_string.count + 1
end
if i > 0 then
s := a_date_string.substring (j, i - 1)
if s.is_integer then
d := s.to_integer_32 -- Day
j := i + 1
i := a_date_string.index_of (':', j)
if i > 0 then
s := a_date_string.substring (j, i - 1)
h := s.to_integer
j := i + 1
i := a_date_string.index_of (':', j)
if i > 0 then
s := a_date_string.substring (j, i - 1)
min := s.to_integer
j := i + 1
i := a_date_string.index_of ('Z', j)
if i = 0 then
i := a_date_string.count + 1
end
s := a_date_string.substring (j, i - 1)
sec := s.to_double
end
end
end
end
end
end
create Result.make (y,m,d,h,m,0)
Result.fine_second_add (sec)
else
i := a_date_string.index_of ('+', 1)
if i > 0 then
str := a_date_string.substring (1, i - 1)
str.append (" GMT")
create htdate.make_from_string (str)
Result := htdate.date_time
if a_date_string.substring (i + 1, a_date_string.count).is_case_insensitive_equal ("0000") then
end
else
create htdate.make_from_string (a_date_string)
Result := htdate.date_time
end
end
end
end