A CalculadoraDataAPI é uma API em .NET 8 que permite realizar operações de cálculo de datas, incluindo conversão entre calendários Juliano e Gregoriano, além de realizar operações de adição e subtração. O desafio é fazer o cálculo entre datas sem usar o DateTime!
- 🔄 Conversão entre os calendários Juliano e Gregoriano.
- ➕ ➖ Cálculo de datas com operações de soma e subtração.
- 📄 Documentação Swagger integrada para fácil consulta dos endpoints.
Calcula uma nova data com base em uma data inicial, operação (+ ou -), e valor em minutos.
| Parâmetro | Tipo | Descrição |
|---|---|---|
data |
string | Data inicial no formato dd/MM/yyyy HH:mm. |
operacao |
string | Operação matemática: + (soma) ou - (subtração). |
valor |
long | Valor em minutos a adicionar ou subtrair. |
GET /api/v2/calculardata?data=14/03/2021 19:12&operacao=+&valor=3000{
"data": "16/03/2021 21:11"
}- 200 OK: Retorna a nova data calculada.
- 400 Bad Request: Parâmetros fornecidos inválidos.
- 500 Internal Server Error: Erro inesperado no servidor.
CalculadoraDataAPI/
│
├── CalculadoraDataAPI.sln // Solução do projeto
├── Program.cs // Configuração e inicialização do projeto
├── Controllers/ // Controladores da API
│ └── CalcularDataController.cs // Controller principal para cálculo de datas
│
├── DTOs/ // Objetos de Transferência de Dados
│ └── DateRequestDto.cs // DTO para requisição de cálculo de data
│
├── Interfaces/ // Interfaces para Injeção de Dependência
│ ├── IConversorCalendarioService.cs // Interface do serviço de conversão de calendário
│ └── IDataCalculationService.cs // Interface do serviço de cálculo de data
│
├── Services/ // Lógica de Negócio
│ ├── ConversorCalendarioService.cs // Implementação da conversão de calendários
│ └── DataCalculationService.cs // Implementação do cálculo de data
│
├── Utilities/ // Utilitários auxiliares
│ └── DateHelper.cs // Validações auxiliares de data
│
└── Tests/ // Projeto de Testes Unitários
├── CalcularDataUnitTestController.cs // Testes unitários do controller
- .NET SDK 8: Certifique-se de que o SDK do .NET 8 está instalado em sua máquina.
-
Clone o Repositório:
git clone https://github.com/lucianaregi/CalculadoraDataAPI.git cd CalculadoraDataAPI -
Restaure as Dependências:
dotnet restore
-
Compile e Execute:
dotnet run
-
Acesse o Swagger para Testar a API:
http://localhost:5000/swagger
Este projeto utiliza xUnit e Moq para testes unitários.
Para executar os testes, utilize:
dotnet test- 🔒 Autenticação e Autorização: Adicionar autenticação para segurança da API.
- 🌐 Suporte a Outros Calendários: Expandir a conversão para outros sistemas de calendário.
- ⚡ Cache de Resultados: Implementar cache para melhorar o desempenho em cálculos repetidos.
Contribuições são bem-vindas! Siga as instruções abaixo:
- Faça um fork do projeto.
- Crie uma nova branch para suas alterações (
git checkout -b feature/minha-feature). - Commit suas alterações (
git commit -m 'Adiciona nova feature'). - Envie para o repositório (
git push origin feature/minha-feature). - Abra um Pull Request.
Este projeto está licenciado sob a MIT License. Consulte o arquivo LICENSE para mais detalhes.
CalculadoraDataAPI - Simplificando o cálculo e a conversão de datas!