Manipulando Datas em Qualquer Ano

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como criar um script Python que imprime todos os domingos em um determinado ano. Esta é uma habilidade útil para qualquer pessoa que precise trabalhar com datas e tarefas relacionadas ao tempo em seus projetos de programação.

👀 Pré-visualização

python Sunday.py 2022
2022-01-02
2022-01-09
2022-01-16
2022-01-23
2022-01-30
2022-02-06
2022-02-13
2022-02-20
...

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como usar os módulos datetime e calendar em Python para lidar com datas
  • Como escrever uma função que calcula e retorna uma lista de todos os domingos em um determinado ano
  • Como lidar com a entrada do usuário e argumentos de linha de comando em um script Python
  • Como aprimorar e personalizar o script para torná-lo mais flexível e amigável ao usuário

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Entender como trabalhar com datas e tempo em Python
  • Escrever um script que pode imprimir todos os domingos em um determinado ano
  • Personalizar o script para lidar com diferentes anos e entrada do usuário
  • Aplicar seu novo conhecimento a outras tarefas relacionadas a datas em seus projetos de programação

Criar o Arquivo Sunday.py

Nesta etapa, você criará o arquivo Sunday.py e configurará a estrutura inicial do script.

  1. Crie um arquivo Sunday.py no diretório ~/project.
cd ~/project
touch Sunday.py
  1. Adicione o seguinte código ao arquivo:
import datetime
import sys


## Function to print all the Sundays in a given year
def print_sundays(year):
    sundays = []  ## List to store the Sundays
    date = datetime.date(year, 1, 1)  ## Start with January 1st of the given year
    delta = datetime.timedelta(days=1)  ## Define a timedelta of 1 day

    ## Find the first Sunday of the year
    while date.weekday() != 6:  ## 6 represents Sunday (Monday is 0 and Sunday is 6)
        date += delta  ## Move to the next day

    ## Print all the Sundays in the year
    while date.year == year:  ## Loop until the year changes
        sundays.append(
            date.strftime("%Y-%m-%d")
        )  ## Add the Sunday to the list (formatted as YYYY-MM-DD)
        date += datetime.timedelta(
            weeks=1
        )  ## Move to the next Sunday (increment by 1 week)

    return sundays  ## Return the list of Sundays


## Read the year from the command line argument
if len(sys.argv) > 1:
    year = int(sys.argv[1])  ## Convert the command-line argument to an integer
    sundays = print_sundays(year)  ## Call the function to get the list of Sundays
    for sunday in sundays:
        print(sunday)  ## Print each Sunday
else:
    print(
        "Please provide a year as a command-line argument."
    )  ## Display an error message if no year is provided

Este código configura a estrutura básica do script Sunday.py, incluindo a função print_sundays() e o tratamento de argumentos de linha de comando.

Entender o Código

Nesta etapa, você entenderá o propósito e a funcionalidade do código no arquivo Sunday.py.

  1. A função print_sundays() recebe um parâmetro year e retorna uma lista de todos os domingos naquele ano.
  2. A função começa criando um objeto datetime.date com o year fornecido e o primeiro dia do ano (1º de janeiro).
  3. Em seguida, ela encontra o primeiro domingo do ano iterando pelos dias até que o dia da semana seja 6 (domingo).
  4. Uma vez que o primeiro domingo é encontrado, a função entra em um loop que continua até o final do ano. Em cada iteração, ela adiciona o domingo atual à lista sundays e avança para o próximo domingo (adicionando um timedelta de 1 semana).
  5. Finalmente, a função retorna a lista de domingos.
  6. A parte principal do script lê o ano do argumento da linha de comando e chama a função print_sundays() com o ano fornecido. Em seguida, ele imprime cada domingo na lista.
  7. Se nenhum argumento de linha de comando for fornecido, o script exibe uma mensagem de erro.

Executar o Script

Nesta etapa, você executará o script Sunday.py e observará a saída.

  1. Abra um terminal e navegue até o diretório /home/labex/project.
  2. Execute o script Sunday.py com um ano específico como um argumento de linha de comando:
python Sunday.py 2022

Você deve ver a seguinte saída:

2022-01-02
2022-01-09
2022-01-16
2022-01-23
2022-01-30
2022-02-06
2022-02-13
2022-02-20
2022-02-27
2022-03-06
2022-03-13
2022-03-20
2022-03-27
2022-04-03
2022-04-10
2022-04-17
2022-04-24
2022-05-01
2022-05-08
2022-05-15
2022-05-22
2022-05-29
2022-06-05
2022-06-12
2022-06-19
2022-06-26
2022-07-03
2022-07-10
2022-07-17
2022-07-24
2022-07-31
2022-08-07
2022-08-14
2022-08-21
2022-08-28
2022-09-04
2022-09-11
2022-09-18
2022-09-25
2022-10-02
2022-10-09
2022-10-16
2022-10-23
2022-10-30
2022-11-06
2022-11-13
2022-11-20
2022-11-27
2022-12-04
2022-12-11
2022-12-18
2022-12-25

A saída mostra todos os domingos do ano de 2022.

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar