# Last edited on 2018-05-03 18:56:30 by stolfilocal

def minutos_desde_1900(d):
  """Exige que {d} seja uma data entre 1900 (inclusive) e 2100 (exclusive),
  representada por um dicionario com campos numericos "dia", "mes", "ano",
  "hora", "min", e "seg", sendo que o campo "seg" eh zero.  Devolve o numero
  de minutos que se passaram desde 1900-01-01 00:00."""
  
  assert d["seg"] == 0
  
  ndias = 0 # Dias completos desde a epoca.
  
  # Conta anos completos:
  for aa in range(1900, d["ano"]):
    # O ano aa passou inteiro:
    ndias = ndias + 365;
    if bissexto(aa):
      ndias = ndias + 1
  
  # Conta meses completos:
  for mm in range(1, d["mes"]):
    # O mes mm passou inteiro:
    if mm == 2:
      if bissexto(d["ano"]):
        ndias = ndias + 29
      else:
        ndias = ndias + 28
    elif mm == 1 or mm == 3 or mm == 5 or mm == 7 or mm == 8 or mm == 10 or mm == 12:
      ndias = ndias + 31
    else:
      ndias = ndias + 30
  
  # Conta dias completos:
  ndias = ndias + (d["dia"] - 1)

  # Converte para minutos:
  nmins = ndias * 24 * 60

  # Conta horas completas:
  nmins = nmins + d["hora"] * 60

  # Conta minutos completos:
  nmins = nmins + d["min"]
  
  return nmins

def bissexto(a):
  return False

d = { "ano": 2001, "mes": 3, "dia": 25, "hora": 12, "min": 5, "seg": 0}
print( minutos_desde_1900(d))
