Função para devolver data do próximo dia da semana informado C#(CSharp).
Postado em : 30/07/2021
Função que devolve data com o próximo dia da semana informado.
Abaixo você vai encontra a função e uma extensão basicamente iguais, a diferença realmente é que uma é utilizada como função e outra como extensão, dependendo de sua preferencia, sua utilidade é simples, suponha que tenha uma data e precise saber que dia será a próxima segunda-feira ou a próximo sábado, com esta função você resolve seu problema rápido e fácil.
As duas utilizam como parâmetro um enum de DayOfWeek, mas fique tranquilo ele faz parte das versões do C# e sua estrutura é mostrada abaixo.
public enum DayOfWeek { Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6 }
Primeiro apresentamos a função logo abaixo.
Exemplo uso:
DateTime novaData = ProximaData(DateTime.Now, DayOfWeek.Thursday, true);
/* * Exemplo de Conversão de uma List<> para um DataTable * * Visite nossa página http://www.codigoexpresso.com.br * * by Antonio Azevedo * * / /// <summary> /// Extensao de DateTime retorna proxima data de um determinado dia da semana informado , /// /// Exemplo : /// DateTime novaData = ProximaData(DateTime.Now, DayOfWeek.Thursday, true); /// /// </summary> /// <param name="data">Atributo data</param> /// <param name="diaSemana">atributo dia da semana /// public enum DayOfWeek /// { /// Sunday = 0, /// Monday = 1, /// Tuesday = 2, /// Wednesday = 3, /// Thursday = 4, /// Friday = 5, /// Saturday = 6 /// } /// </param> /// <param name="consideraProprioDia"> delfaut = false /// (true = Quando a data for o proprio dia solicitado busta dta da proxima semana) /// (false = Quano a data for o proprio dia solicitado devolve a mesma data) /// </param> /// <returns>DateTime</returns> public static DateTime ProximaData(DateTime data, DayOfWeek diaSemana, Boolean consideraProprioDia = false) { int dia = (int)data.DayOfWeek; if (dia < (int)diaSemana) { data = data.AddDays(((int)diaSemana) - dia); } if (dia > ((int)diaSemana)) { data = data.AddDays((7 - (dia - ((int)diaSemana)))); } if (dia == (int)diaSemana && consideraProprioDia) { data = data.AddDays(7); } return data; } }
Agora a extensão logo abaixo.
Exemplo uso:
DataTime data = new DateTime.Now; DateTime novaData = data.ProximaData(DayOfWeek.Thursday);
/* * Exemplo de Conversão de uma List<> para um DataTable * * Visite nossa página http://www.codigoexpresso.com.br * * by Antonio Azevedo * * / /// <summary> /// Extensao de DateTime retorna proxima data de um determinado dia da semana informado , /// /// Exemplo : /// DataTime data = new DateTime.Now; /// DateTime novaData = data.ProximaData(DayOfWeek.Thursday); /// /// </summary> /// <param name="data">Atributo data</param> /// <param name="diaSemana">atributo dia da semana /// public enum DayOfWeek /// { /// Sunday = 0, /// Monday = 1, /// Tuesday = 2, /// Wednesday = 3, /// Thursday = 4, /// Friday = 5, /// Saturday = 6 /// } /// </param> /// <param name="consideraProprioDia"> delfaut = false /// (true = Quando a data for o proprio dia solicitado busta dta da proxima semana) /// (false = Quano a data for o proprio dia solicitado devolve a mesma data) /// </param> /// <returns>DateTime</returns> public static DateTime ProximaData(this DateTime data, DayOfWeek diaSemana, Boolean consideraProprioDia = false) { ; int dia = (int)data.DayOfWeek; if (dia < (int)diaSemana) { data = data.AddDays(((int)diaSemana) - dia); } if(dia> ((int)diaSemana)) { data = data.AddDays((7-(dia- ((int)diaSemana)))); } if (dia == (int)diaSemana && consideraProprioDia) { data = data.AddDays(7); } return data; }
Mais uma vez espero ter ajudado, deixe seu comentário ele é importante para nosso trabalho!
Links Relacionados
- Arquitetura CQRS
- Arrays em C#(CSharp)
- Atributo para validar Datas utilizando Data Annotation em Asp.Net MVC 4 com C# (CSharp).
- C#(CSharp) Converter inteiro para Hexadecimal e Hexadecimal para Inteiro
- C#(CSharp) Exemplo de Conversão de um List<> de uma classe qualquer para um DataTable.
- C#(CSharp) Função para verificar se um determinado número é Primo
- Calcular Idade C# (CSharp), diferença anos entre duas datas
- Classe com Métodos de extensão C# (CSharp)
- Classe para Ler e Gravar Cookies - Asp.Net MVC 4 com C# (CSharp)
- Classe para tratar valores nulos vindos de nossa Query SQL, C#(CSharp).
- Classes anônimas em C#(CSharp)
- Comando nameof() C#(CSharp)
- Compare duas strings ignorando maiúsculas e minúsculas C#(CSharp).
- Consulta SQLServer com paginação
- Criar Classes Dinâmicas usando DynamicObject e ExpandoObject em C# (CSharp)
- Definir o dia em um DateTime.
- DELETE CASCADE no SqlServer
- Desvendando o Poder da Função STRING_AGG no SQL Server para concatenação de dados
- Diferença entre parâmetros REF e OUT em C#(CSharp)
- Emitir sons pelo auto-falante do computador em C# (CSharp)
- Estrangulando um monólito C#(CSharp)
- Exemplo de acesso a dados com SQL Server em C#.
- Exemplo de consulta em SqlServer para encontrar uma chave Estrangeira
- Explorando Tipos de Dados Personalizados no SqlServer: Utilidade e Impacto na Performance
- Extensões para DataReader, tratando valores de suas consultas SQL (DataReaderExtensions) C#(CSharp)
- Formatando datas MySql
- Formatando datas SqlServer
- Formatar CEP em C# (CSharp)
- Função MySql Calcular Idade
- Função para gerar tabela com listagem contendo intervalo entre duas datas. (SqlServer)
- Gerando números randômicos para sorteio de jogos de azar C#(CSharp)
- Grafana Loki e .NET Framework com C#
- Incrementando e decrementando variáveis em C#(CSharp)
- Injeção de dependência
- Ler string de conexão (connectionStrings) do arquivo Web.config Asp.Net MVC co C#(CSharp)
- Métodos de extensão C#
- Ordenando um array com o comando OrderBy C#(CSharp)
- Parar um loop foreach usando o comando break C#(CSharp).
- Protegendo seu site de ataques (CSRF ) com ValidateAntiForgeryToken Asp.Net MVC4 com C#(CSharp)
- Recuperar a URL da página anterior em Asp.Net C# (CSharp)
- Recuperar a URL da página atual em Asp.Net C# (CSharp)
- Recuperar para código C# (CSharp) o valor de um componente de nossa página
- Retorna o IP da conexão do Cliente em Asp.Net MVC com C# (CSharp)
- Retorna os dados do Navegador do Cliente em Asp.Net MVC com C# (CSharp)
- Salvando CSV com cabeçalho no SQL Server Management Studio
- Separar String de caracteres C#(CSharp)
- Serilog e .NET Framework com C#
- Tipos de dados em C# (CSharp)
- Tipos de dados primitivos em C#(CSharp)
- Validando Valores nulos vindos de nosso Banco de Dados C#(CSharp)
- Validar Modelos com Data Annotation e Windows Form Application C#(CSharp)
- Verificar se uma string é um digito em C# (CSharp)