Advertisement
arthur393

Calendario

Jan 23rd, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.18 KB | None | 0 0
  1. def qtd_dia(dia, mes, ano):
  2.     #VARIAVEIS
  3.     dia_contado = 0
  4.  
  5.     #CALCULO DIA
  6.     dia_contado+=dia
  7.  
  8.     #CALCULO MÊS
  9.     #1  jan 31
  10.     #2  fev 28 | 29
  11.     #3  mar 31
  12.     #4  abr 30
  13.     #5  mai 31
  14.     #6  jun 30
  15.     #7  jul 31
  16.     #8  ago 31
  17.     #9  set 30
  18.     #10 out 31
  19.     #11 nov 30
  20.     #12 dez 31
  21.    
  22.     # O modelo de condições a abaixo, e.g: mes>n, onde n é
  23.     # o número referente ao mês, impede que adicione a qtd de dias
  24.     # do mês inteiro,
  25.     # EVITANDO o problema de entrada, como:
  26.     # dia 2, mes 1
  27.     # retorno 2 + 31  = 33
  28.     #
  29.     # passando a ser:
  30.     #
  31.     # retorno 2 + 0   = 2
  32.  
  33.     if mes>1:
  34.         dia_contado+=31
  35.     if mes>2 and ano%4==0: #se ano bissexto acrescenta + 1
  36.         dia_contado+=29
  37.     if mes>2 and ano%4!=0:
  38.         dia_contado+=28
  39.     if mes>3:
  40.         dia_contado+=31
  41.     if mes>4:
  42.         dia_contado+=30
  43.     if mes>5:
  44.         dia_contado+=31
  45.     if mes>6:
  46.         dia_contado+=30
  47.     if mes>7:
  48.         dia_contado+=31
  49.     if mes>8:
  50.         dia_contado+=31
  51.     if mes>9:
  52.         dia_contado+=30
  53.     if mes>10:
  54.         dia_contado+=31
  55.     if mes>11:
  56.         dia_contado+=30
  57.     if mes>12:
  58.         dia_contado+=31
  59.            
  60.     #CALCULO ANO
  61.  
  62.     # Contagem de ano caso bissexto ou não,
  63.     # retirando 1 logo do começo do loop, pois o ano atual não
  64.     # não conta.
  65.     # O loop termina assim que o ano for maior que 1, pois 0 não é ano.
  66.  
  67.     i   = ano
  68.     while i > 1:
  69.         i-=1
  70.         if i%4==0:
  71.             dia_contado+=366
  72.         else:
  73.             dia_contado+=365
  74.        
  75.     return dia_contado
  76.  
  77.  
  78. #VETOR CUJO A VARIAVEL dia_mes É EXPLORADA
  79. meses = [31,28,31,30,31,30,31,31,30,31,30,31]
  80.  
  81.  
  82. #ENTRADA
  83. #dia = 1
  84. #mes = 1
  85. ano = 2020
  86.  
  87. #SAIDA
  88. print ("        ",ano,"        ")
  89. for m in range(1,12 + 1):  # + 1, pois range vai de 1 a n + 1
  90.     print ("\n")
  91.     print ("      --",m,"--    ")
  92.     print ("d  s  t  q  q  s  s")
  93.  
  94.     if m == 2 and ano%4==0:
  95.         dia_mes = 29
  96.     else:
  97.         dia_mes = meses[m-1]
  98.  
  99.     for d in range (1,dia_mes + 1):
  100.  
  101.         if d==1 and qtd_dia(1,m,ano)%7==2:
  102.             print ("   ",end ='')
  103.         if d==1 and qtd_dia(1,m,ano)%7==3:
  104.             print ("      ",end ='')
  105.         if d==1 and qtd_dia(1,m,ano)%7==4:
  106.             print ("         ",end ='')
  107.         if d==1 and qtd_dia(1,m,ano)%7==5:
  108.             print ("            ",end ='')
  109.         if d==1 and qtd_dia(1,m,ano)%7==6:
  110.             print ("               ",end ='')
  111.         if d==1 and qtd_dia(1,m,ano)%7==0:
  112.             print ("                  ",end ='')
  113.            
  114.         if qtd_dia(d,m,ano)%7==1:
  115.             print ('%(d)02d' %  {'d':d},end =' ')
  116.         if qtd_dia(d,m,ano)%7==2:
  117.             print ('%(d)02d' %  {'d':d},end =' ')
  118.         if qtd_dia(d,m,ano)%7==3:
  119.             print ('%(d)02d' %  {'d':d},end =' ')
  120.         if qtd_dia(d,m,ano)%7==4:
  121.             print ('%(d)02d' %  {'d':d},end =' ')
  122.         if qtd_dia(d,m,ano)%7==5:
  123.             print ('%(d)02d' %  {'d':d},end =' ')
  124.         if qtd_dia(d,m,ano)%7==6:
  125.             print ('%(d)02d' %  {'d':d},end =' ')
  126.         if qtd_dia(d,m,ano)%7==0:
  127.             print ('%(d)02d' %  {'d':d},"\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement