JavaScript ::: Dicas & Truques ::: Data e Hora |
Como somar dias a uma data em JavaScript usando uma função personalizada adicionar_dias() que retorna um objeto DateQuantidade de visualizações: 13616 vezes |
Nesta dica mostrarei como podemos escrever uma função JavaScript que permite adicionar dias a uma data recebida como argumento e retorna um novo objeto Date. Como pequenas modificações esta função pode ser usada também para subtrair dias da data. Veja a página HTML completa para o exemplo: <!doctype html> <html> <head> <title>Data e hora em JavaScript</title> </head> <body> <script type="text/javascript"> // função que recebe um objeto Date e uma quantidade // de dias e soma esses dias ao Date recebido e // e retorna um novo objeto Date function adicionar_dias(data, dias){ return new Date(data.getTime() + (dias * 24 * 60 * 60 * 1000)); } // testa a função var hoje = new Date(); document.write("Hoje é " + hoje.toLocaleDateString() + "<br>"); // vamos adicionar 5 dias ao objeto Date var data_futura = adicionar_dias(hoje, 5); document.write("Daqui 5 dias será: " + data_futura.toLocaleDateString()); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: Hoje é 06/02/2023 Daqui 5 dias será: 11/02/2023 |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid do Delphi e tratar seu evento OnEditButtonClickQuantidade de visualizações: 12212 vezes |
Em algumas situações gostaríamos de exibir um botão do tipo ellipsis (...) nas células de uma determinada coluna do TDBGrid. Este botão é exibido à direita da célula de edição do DBGrid e seu evento OnEditButtonClick pode ser disparado por meio da combinação Ctrl+Enter ou um click do mouse. Um dos usos mais frequentes do botão ellipsis é quando queremos chamar um formulário de pesquisa ou mais detalhes sobre o conteúdo atual da célula que está sendo editada. Siga os passos abaixo para adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid: a) Selecione a coluna desejada na lista Columns; b) Defina o valor cbsEllipsis para sua propriedade ButtonStyle; c) Escreva um gerenciador de eventos para o evento OnEditButtonClick do DBGrid. Veja no trecho de código a seguir como clicar no botão e exibir o conteúdo da célula (note que coloquei o botão ellipsis em uma coluna cujos células exibiam o valor do campo id de uma tabela livros): procedure TForm3.DBGrid1EditButtonClick(Sender: TObject); begin ShowMessage('O valor da célula que contém o botão é: ' + DBGrid1.SelectedField.AsString); end; Ao executar este código bastará entrar na célula e colocá-la em modo de edição. Automaticamente o botão ellipsis (...) será exibido. Clique no mesmo e verá uma mensagem parecida com: "O valor da célula que contém o botão é: 5." Caso queira que o botão ellipsis seja visível nas células o tempo todo, basta alterar o valor da opção dgAlwaysShowEditor para True. Esta opção é parte da propriedade Options do DBGrid. Esta dica foi escrita e testada no Delphi 2009. |
Java ::: Java Swing - Gerenciadores de Layout ::: GridBagLayout |
Como adicionar espaço entre o GridBagLayout do Java Swing e as bordas da janela JFrame usando o método setBorder()Quantidade de visualizações: 11382 vezes |
Se o GridBagLayout for o gerenciador de layout principal da janela, pode ser interessante adicionar algum espaço (padding) entre ele e as bordas da janela JFrame ou JDialog. Isso pode ser feito obtendo-se uma referência ao painel de conteúdo (ContentPane) da JFrame e adicionando uma borda EmptyBorder. Veja como isso é feito no trecho de código abaixo:package arquivodecodigos; import javax.swing.*; import javax.swing.border.*; import java.awt.*; public class Estudos extends JFrame{ public Estudos(){ super("Como usar a classe GridBagLayout"); // define o layout setLayout(new GridBagLayout()); // define uma borda para aumentar o espaço // entre as bordas da janela e o gerenciador // de layout ((JComponent)getContentPane()).setBorder( new EmptyBorder(10, 10, 10, 10)); // cria o GridBagConstraints GridBagConstraints gbc = new GridBagConstraints(); // controla o espaço entre os componentes // e as linhas do GridBagLayout. // aqui nós definimos 5 pixels para os // lados de cima, esquerda, inferior e direita gbc.insets = new Insets(5, 5, 5, 5); // adiciona componentes à janela gbc.gridy = 0; // linha gbc.gridx = 0; // coluna add(new JButton("Botão 1"), gbc); gbc.gridy = 0; // linha gbc.gridx = 1; // coluna add(new JButton("Botão 2"), gbc); gbc.gridy = 0; // linha gbc.gridx = 2; // coluna add(new JButton("Botão 3"), gbc); gbc.gridy = 1; // linha gbc.gridx = 0; // coluna add(new JButton("Botão 4"), gbc); gbc.gridy = 1; // linha gbc.gridx = 1; // coluna add(new JButton("Botão 5"), gbc); gbc.gridy = 1; // linha gbc.gridx = 2; // coluna add(new JButton("Botão 6"), gbc); //setSize(350, 150); pack(); // ajusta o tamanho da janela ao // dos componentes setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este código Java Swing nós teremos o seguinte resultado: ![]() |
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular o peso que um pilar aguenta usando Python - Python para Engenharia CivilQuantidade de visualizações: 277 vezes |
![]() O sonho de todo estudante de Engenharia Civil é poder responder, com segurança, a uma das perguntas mais recorrentes no nosso dia-a-dia: Quanto de peso um pilar aguenta? Para responder, basta nos lembrarmos de que o concreto é muito resistente à compressão, e, no caso dos pilares, a armadura é usada, em sua maior parte, para combater a flambagem, que é quando o pilar tende a fletir para os lados, parecendo-se com um arco ou com uma barriga de chope. Então, uma vez que o pilar recebe sua carga em seu eixo (carga axial) e o concreto é muito resistente à compressão, só precisamos nos concentrar na resistência característica do concreto à compressão e na área da seção transversal do pilar. Sempre que falamos de resistência do concreto, nós estamos falando de FCK C15, C20, C25, C30, etc, que são os termos usados para designar sua resistência. Assim, um concreto C25 é o mesmo que 25 MPa, ou seja, esse concreto resiste a 250Kg/cm2. Os concretos usinados, em geral, vêm com resistência de 25 MPa para cima, enquanto aquele concreto que fazemos na obra, na betoneira, usando a combinação de 3x1, chega no máximo a 15 MPa. Além disso, é importante nos lembrarmos de que a norma NBR 6118/2014 exige que o concreto seja igual ou superior a 25 MPa. Há também o fator de segurança de 40%, também exigido pela norma NBR 6118/2014. Dessa forma, se o concreto for de 25 MPa, aplicado o fator de segurança, só podemos contar com 15 MPa mais ou menos, o que daria 150Kg/cm2. Vamos ver código agora? Veja o código Python completo que pede os lados b (base) e h (altura) do pilar e o FCK do concreto usado e retorna o peso que o pilar suporta (já aplicado o fator de segurança): # Algoritmo Python que calcula o peso suportado por um pilar # dados os seus lados e o FCK do concreto # função principal do programa def main(): # vamos ler o lado b do pilar base = float(input("Informe a base (b) do pilar em cm: ")) # vamos ler a altura h do pilar altura = float(input("Informe a altura (h) do pilar em cm: ")) # vamos calcular a área da seção transversal do pilar area = base * altura # agora vamos ler o FCK do concreto em MPa fck = float(input("Informe o FCK do concreto em MPa: ")) # vamos calcular o peso suportado pelo pilar peso_suportado = area * (fck * 10) # vamos aplicar o fator de segurança de 40% peso_suportado = peso_suportado / 1.4 # e mostramos o resultado print("A área da seção transversal é: {0} cm2".format(area)) print("Esse pilar suporta {0} kg".format(peso_suportado)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe a base (b) do pilar em cm: 14 Informe a altura (h) do pilar em cm: 26 Informe o FCK do concreto em MPa: 20 A área da seção transversal é: 364.0 cm2 Esse pilar suporta 52000.0 kg Lembre-se de que a área mínima da seção de um pilar, de acordo com a NBR 6118/2014 é de 360 cm2. |
C# ::: Dicas & Truques ::: Data e Hora |
Como adicionar ou subtrair dias de uma data em C# usando o método AddDays() da classe DateTimeQuantidade de visualizações: 27001 vezes |
Em algumas situações nossos códigos precisam adicionar ou subtrair dias de uma data. Isso pode ser feito com o auxílio do método AddDays() da estrutura DateTime. Este método recebe o número de dias a serem acrescidos ou substraídos da data representada pelo DateTime atual e retorna um novo DateTime com as devidas modificações. Veja um trecho de código no qual adicionamos 5 dias à data atual: static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos adicionar 5 dias à data de hoje DateTime data_futura = hoje.AddDays(5); // exibe a data daqui a cinco dias System.Console.WriteLine("Daqui a 5 dias será {0:d}", data_futura); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } É possível também subtrair dias. Para isso só precisamos fornecer um valor negativo para o método AddDays(). Veja: static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos subtrair 7 dias da data de hoje DateTime data_passado = hoje.AddDays(-7); // exibe a data sete dias atrás System.Console.WriteLine("Há 7 dias era {0:d}", data_passado); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } Lembre-se, contudo, que o método AddDays() pode disparar uma exceção do tipo ArgumentOutOfRangeException se o DateTime resultante for menor que MinValue ou maior que MaxValue. MinValue e MaxValue são os menor e maior valores que um DateTime pode representar. |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como obter e exibir todos os itens selecionados em uma TListBox do Delphi de seleção múltiplaQuantidade de visualizações: 14419 vezes |
Este trecho de código mostra como podemos obter e exibir todos os itens selecionados em uma TListBox de seleção múltipla. Para executá-lo, coloque uma ListBox, um Memo e um Button em um formulário. Altere a propriedade MultiSelect da ListBox para True, adicione alguns itens e execute. Selecione um ou mais itens e clique no botão para visualizar o resultado. Note que usei um TStringList (classe concreta derivada de TStrings) para armazenar os itens selecionados. Veja o código:procedure TForm1.Button1Click(Sender: TObject); var i: Integer; selecionados: TStringList; begin // para que este exemplo funcione corretamente, a ListBox // deverá permitir seleção múltipla // ListBox1.MultiSelect := True; selecionados := TStringList.Create; // vamos obter os itens selecionados na ListBox if ListBox1.SelCount > 0 then begin for i := 0 to ListBox1.Count - 1 do begin if ListBox1.Selected[i] then selecionados.Add(ListBox1.Items[i]); end; // vamos exibir os itens selecionados em um TMemo Memo1.Lines.Clear; Memo1.Lines.Add('Os itens selecionados são:'); for i := 0 to selecionados.Count - 1 do Memo1.Lines.Add(selecionados[i]); end else ShowMessage('Nenhum item selecionado.'); // vamos liberar o TStringList selecionados.Free; end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter radianos em graus na linguagem PythonQuantidade de visualizações: 5453 vezes |
Todos os métodos e funções trigonométricas em Python recebem seus argumentos em radianos, em vez de graus. Um exemplo disso é a função sin() do objeto math, no módulo math. Esta função recebe o ângulo em radianos e retorna o seu seno. No entanto, há momentos nos quais precisamos retornar alguns valores como graus. Para isso é importante sabermos fazer a conversão de radianos para graus. Veja a fórmula abaixo: \[Graus = Radianos \times \frac{180}{\pi}\] Agora veja como esta fórmula pode ser escrita em código Python: import math # função principal do programa def main(): # valor em radianos radianos = 1.5 # obtém o valor em graus graus = radianos * (180 / math.pi) # mostra o resultado print(radianos, "radianos convertidos para", "graus é", graus) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: 1.5 radianos convertidos para graus é 85.94366926962348 Para fins de memorização, 1 radiano equivale a 57,2957795 graus. Por fim, saiba que a linguagem Python nos oferece o método math.degrees() que nos permite converter ângulos radianos em graus. Meu propósito nesta dica foi mostrar a você como o cálculo de conversão pode ser escrito em Python. Em outras dicas dessa seção abordaremos o método math.degrees(). |
Java ::: Java Swing - JTable e classes relacionadas ::: JTable |
Como aplicar uma borda colorida a uma célula da JTable do Java Swing ao passar o mouseQuantidade de visualizações: 309 vezes |
Nesta dica mostrarei como podemos exibir uma borda colorida às células de uma tabela JTable do Java Swing ao passar o mouse sobre ela. Para isso nós vamos criar uma classe personalizada que herda da classe TableCellRenderer. Em seguida nós usamos o evento mouseMoved da classe MouseMotionAdapter para aplicar a borda colorida às células. Veja o código completo para o exemplo: package estudos; import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; public class Estudos extends JFrame{ int linha, coluna; Border vermelho = BorderFactory.createLineBorder(Color.red); Border vazia = BorderFactory.createEmptyBorder(); public Estudos(){ super("JTable"); // colunas da tabela String[] colunas = {"Cidade", "Estado", "Habitantes"}; // conteúdo da tabela Object[][] conteudo = { {"Goiânia", "GO", "43.023.432"}, {"São Paulo", "SP", "5.343.234"}, {"Rio de Janeiro", "RJ", "6.434.212"}, {"Jussara", "GO", "87.454"}, {"Barra do Garças", "MT", "64.344"} }; // constrói a tabela final JTable tabela = new JTable(conteudo, colunas); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); class CellListener extends MouseMotionAdapter{ public void mouseMoved(MouseEvent e){ JTable tb = (JTable)e.getSource(); linha = tb.rowAtPoint(e.getPoint()); coluna = tb.columnAtPoint(e.getPoint()); tb.repaint(); } } class BordaCelula extends JLabel implements TableCellRenderer{ public BordaCelula(){ setOpaque(true); } public Component getTableCellRendererComponent ( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){ if(row == linha && column == coluna){ this.setBorder(vermelho); } else{ this.setBorder(vazia); } this.setText(value.toString()); return this; } } Container c = getContentPane(); c.setLayout(new FlowLayout()); tabela.addMouseMotionListener(new CellListener()); tabela.setDefaultRenderer(Object.class, new BordaCelula()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Python ::: Dicas & Truques ::: Formatação de datas, strings e números |
Como formatar inteiros com uma determinada quantidade de zeros à esquerda usando PythonQuantidade de visualizações: 11317 vezes |
Nesta dica eu mostro como formatar um valor inteiro com uma determinada quantidade de zeros à sua esquerda. Note que aqui eu estou combinando a função print() com o operador de módulo (%) para indicar os valores que serão formatados. Esta técnica foi muito usada na época do Python 2.5 e ainda está disponível no Python 3.0 (e creio que deverá continuar por muito tempo ainda). Veja o trecho de código completo: # função principal do programa def main(): valor1 = 343 valor2 = 3 # exibirá 000342 print("O valor é %06d" % (valor1)) # exibirá 0342 e 00000003 print("Os valor sao %04d e %08d" % (valor1, valor2)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O valor é 000343 Os valor são 0343 e 00000003 |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como adicionar zeros ou outro caractere ao final de uma string em JavaScript usando a função padEnd() do objeto StringQuantidade de visualizações: 1560 vezes |
O método padEnd(), adicionado ao objeto String no ES2017 (ECMAScript 8) é usado quando queremos preencher o final de uma string com zeros ou qualquer outro caractere até alcançarmos um comprimento determinado. Veja, por exemplo, como adicionar asteríscos (*) no final de uma string para alcançar o tamanho de dez caracteres: <script type="text/javascript"> var valor = 17; // vamos mostrar o valor com o tamanho de dez caracteres document.write("O valor é: " + valor.toString().padEnd(10, "*")); </script> Ao executar o exemplo você verá o valor "17********" ser exibido. Porém, como o método padEnd() foi adicionado no ES2017, pode ser que você encontre navegadores que ainda não o suportem. Assim, é sempre uma idéia testar a sua existência. Veja: <script type="text/javascript"> if(String.prototype.padEnd){ window.alert("Seu browser já suporta a função padEnd()."); } else{ window.alert("Seu browser NÃO suporta a função padEnd()."); } </script> Se o navegador não oferecer suporte a este método, você poderá usar um Polyfill, de terceiros ou uma solução que você mesmo poderá desenvolver. |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |