Você está aqui: Java ::: Dicas & Truques ::: Data e Hora |
Como retornar a diferença de semanas, dias, horas, minutos e segundos entre dois objetos DateQuantidade de visualizações: 12916 vezes |
O trecho de código abaixo mostra como obter a diferença de semanas, dias, horas, minutos e segundos entre dois objetos Date. Estude-o atentamente. Esta é uma técnica muito útil para programadores que lidam com cálculos de datas em suas aplicações: import java.util.*; import java.text.*; public class Estudos{ public static void main(String args[]){ try{ // constrói a primeira data DateFormat fm = new SimpleDateFormat( "dd/MM/yyyy HH:mm:ss"); Date data1 = (Date)fm.parse("20/12/2008 16:20:12"); // constrói a segunda data fm = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); Date data2 = (Date)fm.parse("30/12/2008 21:30:15"); // vamos obter a diferença em semanas, dias, horas, // minutos e segundos long segundos = (data2.getTime() - data1.getTime()) / 1000; int semanas = (int)Math.floor(segundos / 604800); segundos -= semanas * 604800; int dias = (int)Math.floor(segundos / 86400); segundos -= dias * 86400; int horas = (int)Math.floor(segundos / 3600); segundos -= horas * 3600; int minutos = (int)Math.floor(segundos / 60); segundos -= minutos * 60; // exibe o resultado System.out.println("As duas datas tem " + semanas + " semanas, " + dias + " dias, " + horas + " horas, " + minutos + " minutos e " + segundos + " segundos de diferença"); } catch(ParseException e){ e.printStackTrace(); } } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Pacote java.lang ::: String |
Java para iniciantes - Como verificar se duas strings são iguais ou diferentes usando os métodos equals() e equalsIgnoreCase() da classe StringQuantidade de visualizações: 4205 vezes |
Podemos verificar se duas strings são iguais ou diferentes em Java usando os métodos equals() e equalsIgnoreCase(). O método equals() recebe um objeto do tipo String e o compara com o String atual. Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public boolean equals(Object anObject) O resultado será true se as duas strings forem iguais e false em caso contrário. Note que equals() diferencia letras maiúsculas e letras minúsculas. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Estudos{ public static void main(String[] args) { String palavra1 = "Java"; String palavra2 = "java"; // vamos verificar se as duas strings são iguais if(palavra1.equals(palavra2)){ System.out.println("As duas strings são iguais"); } else{ System.out.println("As duas strings são diferentes"); } } } Ao executar este código nós teremos o seguinte resultado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- As duas strings são diferentes O método equalsIgnoreCase(), por sua vez, não diferencia letras maiúsculas de letras minúsculas. Veja o exemplo anterior usando o método equalsIgnoreCase(): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Estudos{ public static void main(String[] args) { String palavra1 = "Java"; String palavra2 = "java"; // vamos verificar se as duas strings são iguais if(palavra1.equalsIgnoreCase(palavra2)){ System.out.println("As duas strings são iguais"); } else{ System.out.println("As duas strings são diferentes"); } } } Ao executarmos este código o resultado será: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- As duas strings são iguais |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar herança em Java usando extends - Programação orientada a objetos em JavaQuantidade de visualizações: 29016 vezes |
Quando estamos projetando as classes que farão parte de um sistema, é aconselhável ter em mente um conceito muito importante da programação orientada a objetos: a herança. O que um aluno, um professor e um funcionário possuem em comum? Todos eles são pessoas e, portanto, compartilham alguns dados comuns. Todos têm nome, idade, endereço, etc. E, o que diferencia um aluno de uma outra pessoa qualquer? Um aluno possui uma matrícula; Um funcionário possui um código de funcionário, data de admissão, salário, etc; Um professor possui um código de professor e informações relacionadas à sua formação. É aqui que a herança se torna uma ferramenta de grande utilidade. Podemos criar uma classe Pessoa, que possui todos os atributos e métodos comuns a todas as pessoas e herdar estes atributos e métodos em classes mais específicas, ou seja, a herança parte do geral para o mais específico. Comece criando uma classe Pessoa (Pessoa.java) como mostrado no código a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Pessoa{ public String nome; public int idade; } Esta classe possui os atributos nome e idade. Estes atributos são comuns a todas as pessoas. Veja agora como podemos criar uma classe Aluno que herda estes atributos da classe Pessoa e inclui seu próprio atributo, a saber, seu número de matrícula. Eis o código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Aluno extends Pessoa{ public String matricula; } Observe que, em Java, a palavra-chave usada para indicar herança é extends. A classe Aluno agora possui três atributos: nome, idade e matricula. Veja um aplicativo demonstrando este relacionamento: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ // cria um objeto da classe Aluno Aluno aluno = new Aluno(); aluno.nome = "Osmar J. Silva"; aluno.idade = 36; aluno.matricula = "AC33-65"; // Exibe o resultado System.out.println("Nome: " + aluno.nome + "\n" + "Idade: " + aluno.idade + "\n" + "Matrícula: " + aluno.matricula); } } Ao executar este código nós teremos o seguinte resultado: Nome: Osmar J. Silva Idade: 36 Matrícula: AC33-65 A herança nos fornece um grande benefício. Ao concentrarmos características comuns em uma classe e derivar as classes mais específicas a partir desta, nós estamos preparados para a adição de novas funcionalidades ao sistema. Se mais adiante uma nova propriedade comum tiver que ser adicionada, não precisaremos efetuar alterações em todas as classes. Basta alterar a superclasse e pronto. As classes derivadas serão automaticamente atualizadas. Esta dica foi testada no Java 8. |
Java ::: Dicas & Truques ::: Gráficos |
Como desenhar em um JComponent (JLabel, JButton, JPanel, etc) usando o método getGraphics() para obter o contexto de desenhoQuantidade de visualizações: 13919 vezes |
A classe JComponent possui um método chamado getGraphics() que retorna um objeto da classe Graphics que pode ser usado para desenhar na superfície do componente. Desta forma, qualquer componente que herda de JComponent pode ser usado para esta finalidade. Antes de demonstrarmos como isso funciona, tenha em mente que o contexto de desenho de um componente só está disponível após ele ser pintado pela primeira vez. Se tentarmos obter o Graphics antes que o componente tenha sido pintado, corremos o risco de lançar uma exceção NullPointerException. O trecho de código abaixo mostra como desenhar uma linha em um JLabel ao clicar em um botão. Fique atento a este código. Boa parte das dicas vistas nesta seção usam esta abordagem: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JLabel label; public Estudos() { super("Desenhando em um JLabel"); Container c = getContentPane(); c.setLayout(new BorderLayout()); // Cria um JLabel label = new JLabel(); c.add(label, BorderLayout.CENTER); // Cria um botão JButton btn = new JButton("Desenhar uma linha"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ // Desenha uma linha no JLabel Graphics graphics = label.getGraphics(); graphics.drawLine(0, 0, 150, 100); } } ); // Adiciona o botão à janela c.add(btn, BorderLayout.SOUTH); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso. |
Vamos testar seus conhecimentos em Python |
Qual é a forma correta de se declarar uma variável do tipo real em Python? A) valor = float(6.3) B) valor = Float(6.3) C) valor = 6.3 D) As formas A, B e C estão corretas E) As formas A e C estão corretas Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Analise o seguinte trecho de código JavaScriptvar valores = new Array(2, 4); Este código A) cria uma matriz chamada valores com 2 linhas e 4 colunas. B) cria um array valores e atribui os valores 2 e 4 para valores[1] e valores[2]. C) cria um array valores e atribui os valores 2 e 4 para valores[0] e valores[1]. D) cria um array de três elementos com os índices variando de 2 até 4. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Domínios de Deformações Vigas de concreto armado, com seções submetidas a um momento fletor e a um esforço cortante, são dimensionadas de tal forma que se determine uma armadura longitudinal para resistir ao momento fletor e uma armadura transversal para resistir ao esforço cortante. Analise as informações a seguir, a respeito da solicitação normal do tipo momento fletor: I) Solicitação de flexão simples ocorre quando a única solicitação atuante é o momento fletor. II) Solicitação de flexão composta ocorre quando, além do momento fletor, há uma força normal atuante. III) Solicitação de flexão oblíqua ocorre quando o plano de flexão compreende um eixo de simetria da seção transversal. Assinale a alternativa correta: A) Somente a afirmação I está correta. B) Somente as afirmações I e II estão corretas. C) Somente a afirmação II está correta. D) Somente a afirmação III está correta. E) Somente as afirmações II e III estão corretas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Dimensionamento de pilares de canto Os pilares de canto são solicitados pela flexão oblíqua, tendo momentos de 1ª ordem e excentricidades nas direções x e y. Analise os dados para o pilar a seguir: Qual o valor das excentricidades no topo e na base do referido pilar, em x e y? A) e1,x,A = 1,02cm. e1,x,B = 1,31cm. e1,y,A = 2,05cm. e1,y,B = 1,75cm. B) e1,x,A = 1,52cm. e1,x,B = 1,31cm. e1,y,A = 2,22cm. e1,y,B = 1,99cm. C) e1,x,A = 2,10cm. e1,x,B = 1,56cm. e1,y,A = 1,50cm. e1,y,B = 1,99cm. D) e1,x,A = 2,78cm. e1,x,B = 1,32cm. e1,y,A = 1,50cm. e1,y,B = 1,99cm. E) e1,x,A = 1,78cm. e1,x,B = 1,32cm. e1,y,A = 1,22cm. e1,y,B = 0,99cm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Domínios de Deformações Para o dimensionamento de elementos de concreto armado sujeitos a solicitações normais, é necessário utilizar as relações de tensão-deformação (σ x ε) dos materiais (concreto e aço), as relações de compatibilidade de deformações e as relações de igualdade entre os esforços atuantes e os esforços resistentes. Analise as informações a seguir a respeito das relações referenciadas: I) As relações tensão-deformação referem-se ao comportamento do concreto simples. II) As relações de compatibilidade de deformações são o resultado da hipótese de que as seções permanecem planas até a ruptura e dos domínios de deformação. III) As relações de igualdade entre os esforços atuantes e os resistentes correspondem às equações de equilíbrio de forças e momentos em uma seção de concreto armado. Assinale e alternativa correta: A) Somente a afirmação I está correta. B) Somente as afirmações II e III estão corretas. C) Somente a afirmação II está correta. D) Somente a afirmação III está correta. E) Somente as afirmações I e II estão corretas. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |