Lubridate: рдИрд╕рд╛ рдкреВрд░реНрд╡ рддрд┐рдерд┐рдпрд╛рдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдордИ 2009  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: tidyverse/lubridate

рд╕реНрд╡рдпрдВ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ: рдИрд╕рд╛ рдкреВрд░реНрд╡ рдХреА рддрд╛рд░реАрдЦреЛрдВ рдФрд░ рд╕рдордп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рдорд╕реАрд╣ рд╕реЗ рдкрд╣рд▓реЗ / рд╕рд╛рдорд╛рдиреНрдп рдпреБрдЧ рд╕реЗ рдкрд╣рд▓реЗ)

  • рдЧреИрд░реЗрдЯ

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╛рдЪреАрди рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рдмреАрд╕реАрдИ/рдмреАрд╕реА рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реИ, рдпрд╛ рд▓реБрдмреНрд░рд┐рдбреЗрдЯ рдЕрдм рдЗрд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ?

рдЕрдзрд┐рдХ рдареЛрд╕ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИред рд▓реЛрдЧреЛрдВ рдХреЗ рдорди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреИрдЯрд░реНрди рдХреНрдпрд╛ рд╣реИ?

рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдХреЛрдИ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВред

рдареАрдХ рд╣реИ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирдХрд╛рд░рд╛рддреНрдордХ рд╡рд░реНрд╖ рдпрд╛рдиреА рдмреАрд╕реА рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдХрд╛рдлреА рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рдереАрдВред рдЬреИрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

> lubridate::ymd("-2255-01-01")
[1] "2255-01-01"

> lubridate::parse_date_time(-2255, "Y")
[1] NA
Warning message:
All formats failed to parse. No formats found.

рдЪреВрдВрдХрд┐ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╡рд░реНрд╖ рд╡рд╛рд▓реА рджрд┐рдирд╛рдВрдХ рд╡рд╕реНрддреБ рд╡рд╛рдкрд╕ рдХрд░ рджреА рдЬрд╛рддреА рд╣реИред рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:

> lubridate::ymd("0000-01-01") - lubridate::years(2255)
[1] "-2255-01-01"

рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдПрдХ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рд▓рд┐рдЦрд╛ рдЬреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рд╛рдЪреАрди рдХрд╛рд▓ (рдЬреИрд╕реЗ рдЧреНрд░реАрдХ рдФрд░ рд░реЛрдорди рдХрд╛рд▓) рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред рдпрд╣ рд╕рдорд╕реНрдпрд╛/рд╡рд┐рдХрд▓реНрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ Tidyverse рдФрд░ lubridate рдЙрддреНрд╕рд╛рд╣реА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд┐рдЯрд▓ рдорд╛рдирд╡рд┐рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ R рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреАрд▓ рдмреНрд░реЗрдХрд░ рд╣реИред рдореБрдЭреЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдирдорд╕реНрддреЗ! рдкреИрдХреЗрдЬ рдФрд░ рдЖрд╕рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрдЧрд░ рдХреЛрдИ рдмреАрд╕реАрдИ рддрд┐рдерд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде (1.7.9) рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░реЗрдд рд╡рд░реНрд╖ рд╢реВрдиреНрдп рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рджрд┐рдП рдЧрдП рд╣реИрдВред

(рдЧреИрд░-рдореМрдЬреВрджрд╛) "рд╡рд░реНрд╖ рд╢реВрдиреНрдп" рд╕реЗ рдирд┐рдкрдЯрдирд╛

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг

рдпрджрд┐ рдХреЛрдИ рд▓реБрдмреНрд░рд┐рдбреЗрдЯ рдореЗрдВ "рд╕рд╛рдорд╛рдиреНрдп рдпреБрдЧ рд╕реЗ рдкрд╣рд▓реЗ" рддрд┐рдерд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╡рд░реНрд╖ рд╢реВрдиреНрдп рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ (рдЗрддрд┐рд╣рд╛рд╕рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рд╡рд░реНрд╖ -1 рдФрд░ рдлрд┐рд░ рд╡рд░реНрд╖ 1 рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХрд╛рд▓рдХреНрд░рдо рджреЗрдЦреЗрдВ - рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬреВрд▓рд┐рдпрди рдХреИрд▓реЗрдВрдбрд░ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдЖрдЬрдХрд▓ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░реЗрдЧреЛрд░рд┐рдпрди рдХреИрд▓реЗрдВрдбрд░ рдХреЗ рд╕рд╛рде рдорд╛рдореВрд▓реА рд╕рдВрдШрд░реНрд╖ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ; рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдорд┐рд▓реЗрдЧрд╛), рдФрд░ рдЗрд╕рд╕реЗ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

рдЙрди рдиреЛрдЯреЗрд╢рди рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг:

  • " рд╕реАрдИ " рдХрд╛ рдЕрд░реНрде "рдХреЙрдорди рдПрд░рд╛" рд╣реИ, рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ "рдбреА-рдХреНрд░рд┐рд╢реНрдЪрд┐рдпрдирд╛рдЗрдЬреЗрд╢рди" рд╣реИ рдФрд░ рдЕрднреА рднреА "рдПрдбреА", "рдПрдиреЛ рдбреЛрдорд┐рдирд┐" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рддрд┐рдерд┐рдпрд╛рдВ рд╕реАрдИ рдХреЛ "рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╡рд░реНрд╖" рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
  • " рдмреАрд╕реАрдИ " рдХрд╛ рдЕрд░реНрде "рдмрд┐рдлреЛрд░ рдХреЙрдорди рдПрд░рд╛", "рдмреАрд╕реА", "рдмрд┐рдлреЛрд░ рдХреНрд░рд╛рдЗрд╕реНрдЯ" ("рдирдХрд╛рд░рд╛рддреНрдордХ рд╡рд░реНрд╖") рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
    рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 399 рдИрд╕рд╛ рдкреВрд░реНрд╡ рдореЗрдВ рд╕реБрдХрд░рд╛рдд рдХреА рдореГрддреНрдпреБ рд╣реЛ рдЧрдИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реБрдмреНрд░рд┐рдбреЗрдЯ рдЖрдИрдПрд╕рдУ 8601 рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ (рд╕рдВрд╕реНрдХрд░рдг 8601:2004 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ? рдмреАрд╕реАрдИ рддрд┐рдерд┐рдпреЛрдВ рдХреЛ рдЖрдИрдПрд╕рдУ 8601:2019 рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдлреНрд░реА-рдПрдХреНрд╕реЗрд╕ рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ), рдЬреЛ 0000-01-01 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред , рдпрд╛рдиреА 1 рдИрд╕рд╛ рдкреВрд░реНрд╡ (рд╡рд░реНрд╖ -1) рдХреА рдкрд╣рд▓реА рдЬрдирд╡рд░реАред

рдпрд╣ рд▓реЗрдЦрди рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдХрд┐ " 0000-01-01 " рд╡рд░реНрд╖ 0 рд╣реИ, рдФрд░ " -001-01-01 " рд╡рд░реНрд╖ -1 рд╣реИ рдЬрдм рдпрд╣ рд╡рд░реНрд╖ -2 рд╣реИ, рдФрд░ рдЕрд╡рдзрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ ( рджреЗрдЦреЗрдВ рдиреАрдЪреЗ рдХреЛрдб )ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ "0 рд╕реАрдИ/рдПрдбреА" рдпрд╛ "0 рдИрд╕рд╛ рдкреВрд░реНрд╡/рдмреАрд╕реА" рд╢рд╛рдпрдж рд╡рд░реНрд╖ -1 рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдиреНрджрд░реНрдн: рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ ( рдЖрдИрдПрд╕рдУ 8601 , рд╡рд░реНрд╖ рд╢реВрдиреНрдп , 1 рдИрд╕рд╛ рдкреВрд░реНрд╡ , рд╕рд╛рдорд╛рдиреНрдп рдпреБрдЧ ...)

рдореЗрд░реА рдмрд╛рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЛрдб

(рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдлрдкреАрдПрд▓ рдХреЗ рддрд╣рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд: рдбреВ рд╡реНрд╣рд╛рдЯ рдж рдмрдХрд╡рд╛рд╕ рдпреВ рд╡рд╛рдВрдЯ рдЯреВ рд╡рд╛рдВрдЯ)

pacman::p_load(lubridate)
pacman::p_version(lubridate)
#> [1] '1.7.9'

a <- ymd("0001-01-01")
a
#> [1] "0001-01-01"
# Year 1, no problem

b <- ymd("0000-01-01") - years(1)
b
#> [1] "-001-01-01"
# It is Year -1?
# No, it's -2 even if printed (-001-01-01),
# since ymd("0000-01-01") is already Year -1.

# The problem appears if we compute duration between the two
as.duration(a - b)
#> [1] "63158400s (~2 years)"
# But there is only one year between 1st January -1 and 1st January 1!
# since year zero doesn't exist.

рдЖрдЗрдП рдСрдЧрд╕реНрдЯрд╕ рддрд┐рдерд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рджреЗрдВ:

  • рдЬрдиреНрдо: 23 рд╕рд┐рддрдВрдмрд░ 63 рдИ.рдкреВ
  • рдореГрддреНрдпреБ: 19 рдЕрдЧрд╕реНрдд 14 рд╕реАрдИ
  • рдореГрддреНрдпреБ рдХреЗ рд╕рдордп рдЖрдпреБ: 75
aug_birth <- ymd("0000-09-23") - years(63)
aug_death <- ymd("0014-08-19")
age <- aug_death - aug_birth
as.duration(age)
#> [1] "2426889600s (~76.9 years)"
# That's one year too much!

# The correct writing would be:
aug_birth <- ymd("0000-09-23") - years(63 - 1)

рддреЛ рдмреАрд╕реАрдИ yyyy-mm-dd рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣реА рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рд╣реЛрдЧрд╛:

parse_bce_ymd <- function(str) {
  regex <- "(\\d{4})(-\\d{2}-\\d{2})"
  match <- stringr::str_match(str, regex)
  years_n <- readr::parse_number(match[, 2]) - 1 # Beware the -1 here
  right_side <- match[, 3]
  date <- ymd(paste0("0000-",right_side)) - years(years_n)
  return(date)
}
# Test the function.
aug_birth <- parse_bce_ymd("0063-09-23")
aug_death <- ymd("0014-08-19")
age <- aug_death - aug_birth
as.duration(age)
#> [1] "2395353600s (~75.9 years)"
# Yay that's correct!

рдлрд┐рд░ рднреА, рдмреАрд╕реАрдИ рдХреА рддрд╛рд░реАрдЦ рдХреЛ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдХ" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рд╡рд░реНрд╖ рдХрдо (рдкреВрд░реНрдг рдореВрд▓реНрдп рдореЗрдВ рдХрдо, рдЬреЛ рдпрд╣рд╛рдВ рдПрдХ рд╡рд░реНрд╖ рдЖрдЧреЗ рд╣реИ) рдХреЗ рд╕рд╛рде рд▓реБрдмреНрд░рд┐рдбреЗрдЯ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд╢реВрдиреНрдп-рд╡рд░реНрд╖ рдореМрдЬреВрдж рдерд╛, рдЬреЛ рднреНрд░рд╛рдордХ рд╣реИред

aug_birth
#> [1] "-062-09-23"

рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ (рдФрд░ рдбрд┐рдЬрд┐рдЯрд▓ рдорд╛рдирд╡рд┐рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЖрд░ рдФрд░ рдЯрд┐рдбрд╛рдЗрд╡рд░реНрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ) рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, @vspinu?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ClaytonJY picture ClaytonJY  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

courtiol picture courtiol  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rachaelmburke picture rachaelmburke  ┬╖  55рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

IamGianluca picture IamGianluca  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

skrackow picture skrackow  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ