Como trabalhar com o tipo DateTime em C#

Image for post

Como trabalhar com o tipo DateTime em C#

 

É quase que essencial ter o conhecimento de como manipular e trabalhar com data, isso é de suma importância, por tal motivo, este artigo terá o objetivo de abordar de maneira conceitual e pratica, uma ideia geral do objeto DateTime no .Net core e como podemos trabalhar com diferentes culturas, fusos horários, formatação, etc.

INTRODUÇÃO A DATAS

Daremos início falando um pouco sobre a classe DateTime no .Net core, é um tipo, um struct (Tipo primitivo, inicializado sempre com um valor), que possui várias propriedades e métodos que armazena as datas no formato yyyy /MM /dd — hh /mm, com ela você poderá simplesmente pegar a data atual e fazer sua exibição de forma formatada e além disso também poderá realizar manipulações e modificações mais avançadas, usando intervalos de tempo e muito mais.

INICIALIZANDO O DATETIME

Observe o exemplo abaixo:

Image for post

Quando nos iniciamos uma data, e não especificamos nenhum valor, ela irá criar uma estrutura que vai vir com os valores padrão. Lembrando que não existe data nula(null), pois DateTime é um tipo de valor como int, double etc., portanto, não há como atribuir um valor nulo.

 
Image for post

Se quiser obter a sua data\hora atual, é só usar a propriedade “.Now” como exibido acima.

OBTENDO VALORES DA DATA

Como vimos no exemplo do tópico anterior para você obter a sua data atual basta você utilizar o “DateTime.Now”, mas se por algum motivo você quiser ou precisar criar uma data especificando o dia, mês e ano, e até mesmo hora, minutos e segundos, nesse caso, a maneira de fazer isso seria a do exemplo abaixo:

 
Image for post

Se por acaso, também quiser obter esses valores separados, pode fazer dessa outra forma a seguir

 
Image for post

Um outro método interessante, é o “DayOfWeek”, que trás o dia da semana da data que você inseriu, da seguinte forma

 
Image for post

FORMATANDO AS DATAS

Nesse tópico veremos como formatar as datas e também os seus padrões de formatação. Com o método “String.Format”, passaremos um elemento para uma string entre { }, podemos também passar um valor de cada vez, mas como tudo fica mais claro de uma maneira pratica, visualize a imagem abaixo

 
Image for post

Em alguns países o padrão de formatação é um tanto diferente do padrão do Brasil, por exemplo na separação das datas por barra, entre outras coisas. Serão exibidos abaixo alguns fatores predefinidos

 
Image for post

Quando se coloca alguma letra depois do dois ponto 0, dentro de chaves, indica algo diferente, no caso o “t”, é entendido como um “short DateTime”, ou seja uma data compactada (horas e minutos).

 
Image for post

No exemplo acima invés de “t”, colocamos o “d” que vai trazer a data no formato compactado (dia/mês/ano).

 
Image for post

Agora, quando colocamos o “T” ou “D”, nos trás respectivamente (horas, minutos e segundos) e (dia da semana, dia numerado, mês por extenso e ano)

Uma última forma padrão antes de darmos seguimento a outro ponto nesse artigo, é utilizar dentro das chaves a letra “r”, “s” e “u”, que resultam em exibição de (3 caracters no dia da semana, data e hora) como exemplificado abaixo:

 
Image for post

Dependendo do sistema que você está usando, essa pode ser uma melhor maneira de formatação, pois caso algo seja alterado, o C# já muda automaticamente.

ADICIONANDO VALORES

Vou mostrar alguns métodos adicionais da data. É habitual ter que remover ano, mês ou dias de uma data, e pode ser complicado se feito à mão, por isso exemplificarei algumas formas de fazer essa e outras coisa mais.

Em caso de que você queira adicionar um dia ou acrescentar algo mais na sua data, isso poderá ser feito da seguinte maneira

 
Image for post

Se você quiser decrementar, é só colocar o sinal de menos (-) na frente do número, e ele irá resultar decrementando a quantidade que você digitou.

Também é possível decrementar ou incrementar horas, minutos e segundo, veja abaixo

COMPARANDO DATAS

O tópico agora mostrará mais uma coisa que podemos fazer também, que é comparar as datas.

No primeiro tópico “ INICIANDO COM DATAS”, foi dito que uma data não pode ser Nula, mas há uma maneira sim de se fazer isso, e é a transformando em “nullable types “, veja a maneira em que isso pode ser realizado.

 
Image for post

Bom, podemos usar a condição “if” para fazermos qualquer comparação de datas

 
Image for post

Mas para que isso funcione, temos que comparar desse maneira exata, utilizando o “. Date” após a data e também após o DateTime.Now, pois ele irá comparar a estrutura como um todo por isso é necessária a utilização desses elementos.

Desse mesmo modo seria, se quiséssemos fazer uma comparação de maior ou menor, observe

 
Image for post

As duas primeiras condições não retornariam “É igual”, pois a data não poderia ser maior ou menor que ela mesma, diferente das outras que são menor/maior igual, ai sim o resultado seria igual

CULTUREINFO

Agora vamos ver um pouco de globalização. Existem dois recursos que usamos no .Net chamados de localização e globalização, utilizamos eles para saber o lugar onde o usuário se encontra ou para formatar datas e horários de acordo com o local onde ele está.

Anteriormente já foi citado que em alguns países a formatação de data e hora podem ser diferentes daqui, tem pais que usa o ponto para separar a data ou hífen. Enfim até mesmo dentro do nosso próprio pais temos distintos horários, como por exemplo: horário de Brasília, horário de Rondônia e por ai vai.

Precisamos usar o “System.Globalization” para trabalhar com CultureInfo, pode ser na mesma linha de código, ou colocando o system no “using”, vamos ver isso na prática.

 
Image for post

TIMEZONE

Quando trabalhamos com data/hora temos que pensar em diversas situações, principalmente se seu “App” por exemplo vai atender usuário de diferentes localidades, temos o exemplo do facebook, que atende usuário de quase todas as partes do mundo.

Temos que seguir a linha de que as nossas aplicações rodam em um servidor que nem sempre está no nosso país, então se utilizarmos o “CultureInfo” como no tópico anterior, a aplicação vai pegar a cultura da máquina que está sendo usada, ou seja se estiver em uma aplicação, por exemplo “Asp.Net”, que está rodando em uma servidor e o mesmo está nos Estados Unidos, independente do usuário estar no Brasil ou no Japão, a cultura será a da máquina.

Para trabalharmos de uma melhor forma, seguindo essa linha de pensamento faremos da seguinte maneira

 
Image for post

Se estiver trabalhando com aplicações globalizadas que estão rodando no mundo todo, é recomendado que utilize o formato “UtcNow”, salva nesse formato e na hora de mandar pra tela usa o “CultureInfo”, como exibido abaixo

Caso eu não queira usar a hora da máquina que estou usando e sim a do usuário, por exemplo que esteja na Austrália

 
Image for post

TIMESPAN

Para fechar o nosso artigo, vamos falar sobre mais um item que é o TimeSpan. É um tipo de estrutura que está presente no namespace System. Ele representa o intervalo de tempo e pode ser expresso como dias, horas, minutos e segundos. Ajuda a buscar dias, horas, minutos e segundos entre duas datas.

 
Image for post

Quando queremos cálculo de hora, fração de hora, minutos, segundos, diferença de horas, utilizamos esse formato.

 
Image for post

CONCLUSÃO

Neste artigo, tivemos uma visão geral sobre o objeto DateTime no .Net C #. Ele também contém como trabalhar com diferentes culturas, fusos horários, formmatting, diferenças de data e outros. Espero que ajude você frequentemente.

Por: Grazielle Ribeiro

Estudante da Universidade Federal de SP IFSP  e é um dos novos talentos que está participando do Programa de Formação ModalGR 2020

Este post tambem pode ser lido em:
https://medium.com/@grazi.silvaribeiro31/como-trabalhar-com-o-tipo-datetime-em-c-19f91d53cbeb

 

Manipulando Strings e Consumindo Métodos Úteis do .Net

Neste artigo iremos aprender como Manipular Strings consumindo métodos úteis do .Net 

Image for post

Sobre .Net

O .Net é uma plataforma de desenvolvimento de software mantido pela Microsoft, a plataforma possui um robusto ecossistema de bibliotecas que facilitam o trabalho de desenvolvimento com diversos serviços e soluções prontas na plataforma, tudo começou com o .Net Framework que nada mais era que uma biblioteca de serviços e funções, mas, com suporte apenas para aplicações nativas de Windows, posteriormente, surgiu o .Net Core, partindo do mesmo princípio, mas agora, abrangendo outras plataformas além do Windows, como Mac e Linux, recentemente à Plataforma foi lançado a nova versão do .net core a qual foi nomeada de .NET 5 e unifica as duas versões existentes o .Net Core com .Net Framework, estando em versão final mas não LTS ainda.

* Versao LTS (Long Term Support) que em português significa suporte de termo ou prazo longo ou ainda extenso e que basicamente consiste em um compromisso de fornecer suporte àquela versão pelo período de 5 anos.

Atualmente a plataforma suporta três linguagens de programação: C#, F# e Visual Basic, do qual , C# sendo uma das mais populares atualmente no mercado.

Interpolação de Strings

Interpolar uma String é basicamente juntar duas cadeias de caracteres em uma mesma String, ou concatenar uma string com algum valor de outro tipo, como um inteiro ou um ponto flutuante, existem várias formas de efetuar o mesmo, como veremos abaixo:

Utilizando operador “+” :

Image for post

No exemplo acima declaramos um inteiro, inicializado com o valor 10, abaixo inicializamos também uma string com uma cadeia de caracteres e utilizando o operador “+” adicionado ao inteiro valor, quando imprimirmos esse valor será concatenado na string texto, como no exemplo abaixo:

 
Image for post

Utilizando interpolador $:

O interpolador $ concatena os valores dentro da própria string, abaixo um exemplo de uso:

 
Image for post

Acima, utilizando o operador antes das aspas, podemos interpolar os valores das variáveis valor valor2 dentro da própria string, usando as chaves {} para separar os valores dentro da cadeia de caracteres, você pode usar quantos valores quiser usando este mesmo molde. Portanto a saída dessa string será:

 
Image for post

Utilizando string.Format() :

 
Image for post

No exemplo acima temos uma segunda variável o valor 15, nesse exemplo acima, estamos usando a função string.Format() para concatenar os valores na cadeia de caracteres da variável texto2, utilizando as chaves com índices iniciando em 0, poderíamos concatenar quantos valores quiséssemos, como no exemplo abaixo:

 
Image for post

Manipulando Strings

Utilizaremos a seguir algumas funções do .Net para manipularmos nossas strings, tais funções são de extrema utilidade em nossas aplicações.

Método .Replace() :

No .Net todas as strings possuem um método chamado Replace, o mesmo recebe dois parâmetros: o caractere que deseja ser substituído e o caractere que irá substituir, como no exemplo abaixo:

 
Image for post

No exemplo acima, inserimos dois argumentos, primeiro, o caractere “e” , o qual , será substuído na string pelo segundo argumento, o “x”. Portanto o texto será imprimido da seguinte forma:

Método .Split() :

Assim como mostrado no exemplo anterior, temos também o método .Split(), este método recebe como argumento um caractere no qual, a cada vez que o programa passar por este caractere ele irá quebrar, ou dividir, o seu texto, e , podemos alocar este resultado em um Array ou um List, no exemplo a seguir dividimos uma string em um array:

 
Image for post

Portanto, na saída deste programa obtemos o seguinte resultado:

 
Image for post

Neste Exemplo acima, imprimimos o array divisao contendo os valores da string divididos a cada “espaço” e inseridos no mesmo, no qual, imprimimos a cada linha os seus valores, partindo do índice até o índice 6, totalizando as sete palavras da string teste2 do array.

Método .Substring() :

O método substring() retorna na sua saída os caracteres de um determinado índice de uma string, ele recebe dois parâmetros: O primeiro sendo o ponto inicial, e o segundo sendo quantos caracteres queremos que a função retorne, abaixo um exemplo :

 
Image for post

Portanto, quando imprimimos a string UsandoSubstring ela nos retornará os 20 primeiros caracteres à partir do índice 27 da string teste3, como podemos ver no exemplo abaixo:

 
Image for post

Enfim, estas foram apenas algumas das diversas funções úteis que a biblioteca .Net fornece, espero que seja útil todo conteúdo aqui apresentado, Bons Estudos!

Este post tambem pode ser lido em: 
https://renato-santos-77017.medium.com/manipulando-strings-e-consumindo-m%C3%A9todos-%C3%BAteis-do-net-fb1accd5bb7c

Por: Renato Santos

Estudante da Universidade Federal de SP IFSP e é um dos novos talentos que está participando do Programa de Formação ModalGR 2020

 

Projeto Vertere - Além da parceria SUZANO e DPW contou com o expertise da MODALGR

Projeto Vertere, além da parceria SUZANO e DPW contou com o expertise da MODALGR trazendo a solução de WMS onde é possível armazenar, controlar e embarcar toda demanda de celulose.
O sistema WMS conta com inúmeras integrações e diversos controles gerenciais, proporcionando rastreabilidade da carga, previsão de recebimento e embarque.

O ápice do sistema acredito que seja o algorítimo de otimização onde controla 6 pontes rolantes automaticamente, podendo prever e organizar os produtos conforme programado.
O maior desafio deste projeto além da tecnologia foi o tempo, para isso utilizamos o que há de melhor nas metodologias ágeis.

A arquitetura do sistema foi implementada com a utilização de micro serviços escritos em .net core, no frontend foi utilizado Flutter para os aplicativos e Angular para o sistema e dashboards.  O sistema faz integrações com grandes players de mercado como SAP, Navis N4, Oracle e alem disso integra e operacionaliza as pontes rolantes do armazém.

Foram mais de 14 mil horas de trabalho dividida entre mais de 35 profissionais de tecnologia.

 Mais um projeto entregue com sucesso, parabéns a todos os consultores ModalGR que participaram do projeto.

A GRande Festa ModalGR 2019

Foi uma noite incrível, cheia de energia, alegria e gratidão pelo ano maravilhoso, uma noite que fortalecemos a união entre todos e renovamos as energias para 2020.

 

Toda jornada vitoriosa merece uma grande festa e 2019 não poderia ser diferente, diante de um ano de muito trabalho, aprendizado, ensinamentos e fortes emoções, fizemos uma grande celebração com nossos consultores e seus familiares, namoradas, namorados e amigos.

Foi uma noite incrível, cheia de energia, alegria e gratidão pelo ano maravilhoso, uma noite que fortalecemos a união entre todos e renovamos as energias para 2020.

Sendo assim, que todos tenham BOAS FESTAS e que venha 2020.

SOMOS A MODALGR

Microsoft AI+ Tour Brasil 2019

Nosso consultor Douglas Alonso participou do evento Microsoft AI+ Tour Brasil 2019 e fizemos um bom bate-papo explanando quais as inovações e tendências de futuro que esse evento trouxe para a área de tecnologia.

 

NOME DO EVENTO: Microsoft AI+ Tour Brasil 2019
Data: 11 de novembro no Expo Center Transamérica em SP

EMPRESA: Microsoft

DO QUE SE TRATA O EVENTO?
Apresentar as novas tecnologias da Microsoft voltadas para inteligência artificial, internet das coisas, big-data e principalmente mostrar como as empresas podem e devem se preparar para a Transformação Digital (TD).

QUAIS INOVAÇÕES TECNOLÓGICAS?
Na área de Inteligência artificial (IA) os algoritmos estão cada vez mais evoluídos e próximos de se comparar ao ser humano no modo de pensar e resolver problemas. Com as novas ferramentas, podemos partir de modelos prontos para iniciar um projeto ganhando tempo e evitando horas de treinamento.

No cenário de Internet das coisas teremos cada vez mais dispositivos conectados, cidades e casas inteligentes, veículos autônomos, roupas, gerando PETABYTES (1000 bytes 5) de informação por dia. Todas essas tecnologias vão exigir cada vez mais poder de processamento, velocidade e armazenamento. Este cenário que antes era inviável por causa do alto custo de infraestrutura e equipamentos hoje é possível através da computação em nuvem (cloud computing).

Porém esse volume grandioso de dados gerados por máquinas, dispositivos, celulares etc. precisam ser estudados e é neste ponto que entra a Ciência de Dados (Big Data) fazendo as análises, gerando relatórios, conclusões e principalmente gerando cenários preditivos que vão auxiliar nas tomadas de decisões para investimentos futuros das empresas. Foram apresentadas algumas ferramentas para o Windows Azure das quais posso destacar, o Azure Data Lake (permite processar grandes cenários de big data), Azure Cosmos DB (serviço de dados distribuído com suporte nativo para o NoSQL), Azure Databricks (é um serviço de análise rápida, fácil e colaborativa baseada no Apache Spark), Azure Data Factory (permite criar extração de dados ETL contemplando mais de 85 tipos de conectores).

QUAIS OS BENEFÍCIOS DESTAS TECNOLOGIAS?
Essas tecnologias permitem que as empresas se transformem, e abram os seus negócios de maneira que possam cada vez mais estar próxima dos seus parceiros, fornecedores e do seu cliente final. De um modo geral ainda teremos muitas inovações em todos os campos, desde a área de saúde, segurança, educação, transportes etc., abrindo novas oportunidades de empregos e criando profissões. Ex.: Analistas de cidades inteligentes, treinador para sistemas autônomos, designer de interfaces inteligentes, entre muitas outras que surgirão.

QUAL IMPACTO NA SOCIEDADE QUE O FUTURO AGUARDA SOBRE ESSAS TECNOLOGIAS?
Teremos muitos impactos, dentro da esfera da educação, é muito provável que o modelo de ensino atual seja modificado, pois da forma que estamos hoje não conseguiremos acompanhar essa evolução, dentro da esfera da saúde acredito que teremos grandes avanços, desde pesquisas cientificas até o desenvolvimento de dispositivos para auxiliar portadores de algum tipo de doença ou deficiência, posso citar um exemplo apresentado onde uma pessoa que não fala mas atualmente consegue se comunicar com a família através de um aplicativo que gera pictogramas (representações de objetos e conceitos traduzidos em uma forma gráfica) e na esfera profissional como citado antes surgirão grandes oportunidades para profissionais especializados.

QUAIS OS RISCOS QUE AS GRANDES EMPRESAS CORREM SE NÃO SE ATUALIZAR A ESSAS FERRAMENTAS?
As empresas que não se atualizarem correm muito risco de saírem do mercado, as inovações não param e a cada dia surgem novas empresas aproveitando desse mundo de oportunidades. Exemplo, Uber mudou o mercador de transporte, iFood mudou o mercado de alimentação, Spotify que mudou a forma de consumir música.

COMO VOCÊ VÊ A ADAPTAÇÃO DAS EMPRESAS PARA ESTAS TECNOLOGIAS NOS DIAS DE HOJE?
Vejo que a evolução está acontecendo, mas de forma lenta nas empresas tradicionais, muitas empresas ainda tem medo de levar seus negócios e estrutura para nuvem, porém esses ambientes são certificados e tem grande segurança, mas necessitam de profissionais qualificador para serem bem projetados, sendo necessário um bom estudo de avaliação antes de se iniciar esse processo.

Alguns dados que a Presidente da Microsoft Brasil Tânia Cosentino apresentou:

  • 68% dos líderes de negócios dizem que a TD (transformação digital) vai gerar um aumento nos lucros;
  • 64% consideram ter menos de 4 anos para completar sua TD ou correm o risco de perder o negócio. Somente 10% das empresas estão sendo bem-sucedidas na TD;
  • 90% esperam um estímulo no crescimento com a IA, 69% esperam um impulso na criação de empregos em cinco anos;
  • 49% dos CEOs dizem que um ataque cibernético é questão de tempo. 51% dizem estar bem preparados.
  • 30% da demanda de tecnologia não encontrará talentos adequados até 2022.
  • 59% dos CEOs dizem que proteger os dados dos clientes é essencial para construir uma relação de confiança.

COMO VOCÊ VÊ A ADAPTAÇÃO DA SOCIEDADE PARA ESTAS TECNOLOGIAS NOS DIAS DE HOJE?
Adaptação da sociedade ocorre de forma gradual, as pessoas mais novas tendo mais facilidade e as mais velhas vão se adaptando com o passar do tempo, mas é inevitável, o futuro já é hoje! Um ponto muito comentado é que muitas profissões deixarão de existir, ao mesmo passo que outras serão criadas, a dica principal aqui é estudem, preparem-se para surfar esta onda de transformações que está chegando.

SUAS CONSIDERAÇÕES FINAIS:
O evento foi muito bom dando uma visão do ponto que estamos e onde poderemos chegar, temos excelentes ferramentas e softwares para construção deste futuro e existem excelentes oportunidades para aqueles que estiverem preparados e antenados com os novos desafios e as tendências tecnológicas. Continuem seguindo o nosso blog em breve pretendo postar conteúdos sobre as tecnologias citadas acima de forma detalhada.

E fica a dica e convite, mês que vem tem mais dois dias de novidades no Microsoft Ignite 2019 nos dias 11 e 12 de dezembro também no Expo Center Transamérica em SP faça sua inscrição https://www.microsoft.com/pt-br/ignite-the-tour/Sao-Paulo

 NOME: DOUGLAS ALONSO
FUNÇÃO: Líder Técnico MODALGR