Skip to content

Instantly share code, notes, and snippets.

@elijahbenizzy
Created December 18, 2024 04:18
Show Gist options
  • Save elijahbenizzy/97a21de97d12dbeb96389f1e7d8cefb6 to your computer and use it in GitHub Desktop.
Save elijahbenizzy/97a21de97d12dbeb96389f1e7d8cefb6 to your computer and use it in GitHub Desktop.
from datetime import datetime
def fetch_dates__EMEA() -> dict:
return {
"a": "31/1/2000",
"b": "28/2/2010",
"c": "30/3/2020",
}
def fetch_dates__US() -> dict:
return {
"a": "1/31/2000",
"b": "2/28/2010",
"c": "3/30/2020",
}
def a__US(fetch_dates__US: dict) -> datetime:
return datetime.strptime(fetch_dates__US["a"], "%m/%d/%Y")
def b__US(fetch_dates__US: dict) -> datetime:
return datetime.strptime(fetch_dates__US["b"], "%m/%d/%Y")
def c__US(fetch_dates__US: dict) -> datetime:
return datetime.strptime(fetch_dates__US["c"], "%m/%d/%Y")
def a__EMEA(fetch_dates__EMEA: dict) -> datetime:
return datetime.strptime(fetch_dates__EMEA["a"], "%d/%m/%Y")
def b__EMEA(fetch_dates__EMEA: dict) -> datetime:
return datetime.strptime(fetch_dates__EMEA["b"], "%d/%m/%Y")
def c__EMEA(fetch_dates__EMEA: dict) -> datetime:
return datetime.strptime(fetch_dates__EMEA["c"], "%d/%m/%Y")
def ab_period(
a__US: datetime, b__US: datetime, a__EMEA: datetime, b__EMEA: datetime, region: str
) -> int:
if region == "US":
return (b__US - a__US).days
if region == "EMEA":
return (b__EMEA - a__EMEA).days
raise ValueError("Region unknown.")
def ac_period(
a__US: datetime,
c__US: datetime,
a__EMEA: datetime,
c__EMEA: datetime,
region: str,
) -> int:
if region == "US":
return (c__US - a__US).days
if region == "EMEA":
return (c__EMEA - a__EMEA).days
raise ValueError("Region unknown.")
def bc_period(
c__US: datetime, b__US: datetime, c__EMEA: datetime, b__EMEA: datetime, region: str
) -> int:
if region == "US":
return (c__US - b__US).days
if region == "EMEA":
return (c__EMEA - b__EMEA).days
raise ValueError("Region unknown.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment