.. _Usando: ========== **Usando** ========== Exemplos -------- 1) Fornecendo uma dada inicial, uma data final e o diretório para o arquivo contendo os :ref:`feriados nacionais do Brasil`: Criando variáveis auxiliares:: >>> var_path= "C:\\foo\\feriados.csv" >>> dt_ini = "01/01/2015" >>> dt_fin = "31/12/2015" Carregando o módulo FinDt:: >>> from findt import FinDt Verificando a versão do módulo: >>> FinDt.__version__ .. Note:: Na versão 3.0.1 todos métodos retornan datas no formato datetime.date() do Python por padrão e foi adicionado o parâmetro **dt_type** que permite a escolha entre este formato ou o formato string naqueles módulos onde esta opção faz sentido. Criando uma instância da classe DatasFinanceiras:: >>> per = FinDt.DatasFinanceiras(dt_ini, dt_fin, path_arquivo=var_path) Gerando uma lista de dias da data inicial até final:: -no formato datetime.date: >>> per.dias() ou >>> per.dias(1) -no formato string: >>> per.dias(1, 'str') -tamanho da lista: >>> len(per.dias()) ou >>> len(per.dias(1, 'str')) 365 Gerando lista de dias sem sábados e domingos da data inicial até final:: -no formato datetime.date: >>> per.dias(2) -no formato string: >>> per.dias(2, 'str') -tamanho da lista: >>> len(per.dias(2)) ou >>> len(per.dias(2, 'str')) 261 Gerando uma lista de dias sem sábados, domingos e feriados da data inicial até final:: -no formato datetime.date: >>> per.dias(3) -no formato string: >>> per.dias(3, 'str') ['02/01/2015', '05/01/2015', '06/01/2015', '07/01/2015',... ] -tamanho da lista: >>> len(per.dias(3)) ou >>> len(per.dias(3, 'str')) 250 Obtendo uma lista de feriados do período especificado:: >>> per.lista_feriados() OrderedDict([(datetime.date(2015, 1, 1), 'Confraternização Universal'), (datetime.date(2015, 2, 16), 'Carnaval'), (datetime.date(2015, 2, 17), 'Carnaval'),... ] >>> per.lista_feriados('str') OrderedDict([('01/01/2015', 'Confraternização Universal'), ('01/05/2015', 'Dia do Trabalho'), ('02/11/2015', 'Finados'), ... ] Obtendo o dia da semana em que determinada data irá cair (mesmo com tal data não estando entre dtIni e dtFim):: >>> per.dia_semana('12/04/2015') 'domingo' Obtendo o último dia do mês:: >>> per.ultimo_dia_mes('23/02/2015') datetime.date(2015, 2, 28) >>> per.ultimo_dia_mes('23/02/2015', 'str') '28/02/2015' Criando uma lista de todas quartas-feiras entre dtIni e dtFim:: >>> per.lista_dia_especifico_semana(3) [datetime.date(2015, 1, 7), datetime.date(2015, 1, 14), datetime.date(2015, 1, 21), datetime.date(2015, 1, 28), ... ] >>> per.lista_dia_especifico_semana(3, 'str') ['07/01/2015', '14/01/2015', '21/01/2015', '28/01/2015', ... ] Obtendo um dicionario ordenado 'Mes/Ano':(Dias Uteis por Mes):: >>> per.dias_uteis_por_mes() OrderedDict([('01/2015', 21), ('02/2015', 18), ('03/2015', 22), ... ] Criando uma lista contendo um subperíodo de DatasFinanceiras:: >>> per.subperiodo('15/01/2015', '15/02/2015') Criando uma lista contendo um subperíodo de DatasFinanceiras excluindo-se feriados e finais de semana:: >>> per.subperiodo('15/01/2015', '15/02/2015') [datetime.date(2015, 1, 15), datetime.date(2015, 1, 16), datetime.date(2015, 1, 17), ... ] >>> per.subperiodo('15/01/2015', '15/02/2015', dt_type='str') ['15/01/2015', '16/01/2015', '17/01/2015', '18/01/2015', '19/01/2015', '20/01/2015', '21/01/2015', ... ] Trabalhando com subperiodos como conjuntos (set):: >>> subper1 = per.subperiodo('15/01/2015', '15/02/2015', dt_type='str') >>> subper2 = per.subperiodo('23/01/2015', '08/02/2015', dt_type='str') >>> set1 = set(subper1) >>> set2 = set(subper2) >>> set1.difference(set2) {'16/01/2015', '09/02/2015', '18/01/2015', '15/01/2015', '15/02/2015', '10/02/2015', '13/02/2015', '19/01/2015', '17/01/2015', '21/01/2015', '11/02/2015', '20/01/2015', '22/01/2015', '14/02/2015', '12/02/2015'} >>> set1.intersection(set2) {'04/02/2015', '31/01/2015', '03/02/2015', '26/01/2015', '25/01/2015', '29/01/2015', '08/02/2015', '30/01/2015', '23/01/2015', '05/02/2015', '28/01/2015', '27/01/2015', '01/02/2015', '06/02/2015', '24/01/2015', '02/02/2015', '07/02/2015'} >>> set1.issubset(set2) False >>> set1.issuperset(set2) True >>> set2.issubset(set1) True >>> set2.issuperset(set1) False