Você está aqui: Cards de Engenharia Civil - Fundações |
||
|
||
|
|
||
PHP ::: Dicas & Truques ::: Data e Hora |
PHP para iniciantes - Como obter a diferença em horas entre duas datas (e suas respectivas horas)Quantidade de visualizações: 1 vezes |
|
Nesta dica eu mostro como podemos usar as funções mktime() e gmdate() da linguagem PHP para obter e retornar a diferença em horas entre duas datas, e suas horas, é claro. Note que vamos fornecer duas datas diferentes (e suas horas) e vamos obter a diferença entre elas em segundos. Veja o código completo:
<head>
<title>Estudando PHP</title>
</head>
<body>
<?php
// data e hora inicial = 23/11/2006 - 13:23:15
$data_inicial = mktime(13, 23, 15, 11, 23, 2006);
// data e hora final = 23/11/2006 - 10:23:15
$data_final = mktime(22, 23, 15, 11, 23, 2006);
$segundos = $data_final - $data_inicial;
echo "A diferença em horas entre as duas
datas é: " . gmdate("H:i:s", $segundos);
?>
</body>
</html>
Ao executar este código nós teremos o seguinte resultado: A diferença em horas entre as duas datas é: 09:00:00 |
Firebird ::: Dicas & Truques ::: Tipos de Dados |
Como usar os tipos CHAR e VARCHAR do FirebirdQuantidade de visualizações: 16397 vezes |
|
O Firebird fornece dois tipos de dados básicos para armazenar informação em texto ou caracteres: CHAR e VARCHAR (O tipo BLOB também permite armazenar caracteres por meio de seu sub-tipo text). CHAR e VARCHAR são tipos de dados que podem armazenar quaisquer informações do tipo texto. Números que não serão envolvidos em cálculos, tais como CEPs, números de ruas, etc, são geralmente armazenados em campos do tipo CHAR ou VARCHAR. O comprimento de um campo do tipo CHAR ou VARCHAR é informado entre parênteses, e pode ser um valor inteiro que vai de 1 até 32.767. Esta largura de caracteres é extremamente útil quando precisamos armazenar dados de tamanho fixo ou pré-definido, tais como códigos de CEPs para um determinado país. Comparado com a maioria dos outros bancos de dados, o Firebird armazena somente as informações significantes. Se um campo é definido como CHAR(100), mas contém apenas 10 caracteres, os bytes definidos adicionalmente não são usados. Isso acontece porque o Firebird armazena os tipos CHAR e VARCHAR de forma igual, e não preenche o espaço não usado com caracteres vazios. Tanto CHAR quanto VARCHAR são guardados na memória em sua forma declarada, mas, o registro é comprimido antes da armazenagem. Além disso, tenha em mente que os campos do tipo VARCHAR exigem mais espaço de armazenamento que os campos do tipo CHAR. Isso ocorre porque, ao armazenar um VARCHAR, o Firebird adiciona dois bytes que serão usados para guardar o real tamanho do campo (o tamanho declarado). Desta forma, um CHAR ocupará menos espaço de armazenamento. Contudo, quando fazemos um SELECT envolvendo campos do tipo VARCHAR, o Firebird removerá os dois bytes adicionados anteriomente e retornará o valor armazenado. Quando um SELECT é efetuado com campos do tipo CHAR, o Firebird retorna o valor e os espaços em branco. Em termos práticos podemos considerar esta regra: somente use CHAR se você for armazenar strings com poucos caracteres. A exceção a esta regra acontece quando estamos trabalhando com tabelas intermediárias exigidas para a exportação de dados para arquivos de tamanhos fixos. Neste caso os campos CHAR de tamanho fixo trarão uma enorme vantagem. Esta forma eficiente de armazenamento do Firebird pode trazer algumas confusão, principalmente quando estamos importando dados, uma vez que bases de dados Paradox e dBase guardam também os espaços em branco. Assim, depois de importar um arquivo dBase de 10Mb para o Firebird, o resultado será algo em torno de 3-6Mb, ainda que todos os dados tenham sido importados corretamente. Observe também que campos CHAR indexados não devem ter mais que 80 caracteres de comprimento (Firebird 2.5). Quando estamos criando campos do tipo CHAR, este tipo de dados pode ser definido como CHAR ou CHARACTER. Já o tipo VARCHAR pode ser definido como VARCHAR, CHARACTER VARYING ou CHAR VARYING. Veja um comando DDL CREATE TABLE usado para criar uma tabela do Firebird contendo campos do tipo CHAR e VARCHAR: CREATE TABLE PESSOAS( ID INTEGER NOT NULL, NOME VARCHAR(40) NOT NULL, SEXO CHAR(1) NOT NULL ); Aqui o campo ID é do tipo INTEGER, NOME é do tipo VARCHAR(40) e SEXO é do tipo CHAR(1). Veja agora um comando DML INSERT INTO que mostra como inserir um novo registro nesta tabela: INSERT INTO PESSOAS VALUES(12, 'OSMAR J. SILVA', 'M'); É importante notar que, se um campo for do tipo CHAR(1) e, na query INSERT ou UPDATE nós fornecermos dois ou mais caracteres, o Firebird se recusará a gravar ou atualizar o registro, exibindo a seguinte mensagem de erro: Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric overflow, or string truncation. string right truncation. |
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar construtores em Ruby - Programação Orientada a Objetos em RubyQuantidade de visualizações: 10682 vezes |
|
Os métodos construtores são recursos muito importantes na construção de objetos de um classe, uma vez que estes permitem inicializar as variáveis de instância do objeto sendo construído. Dessa forma, na programação orientada a objetos, o método construtor tem por finalidade instanciar um novo objeto e já fornecer (ou não) os valores iniciais para as suas variáveis de instância. Em Ruby, o construtor de uma classe é definido com o uso da palavra-chave initialize. Veja um exemplo:
# Definição da classe Cliente
class Cliente
# construtor da classe
def initialize(nome, idade)
@nome = nome
@idade = idade
end
# método que permite retornar o nome do cliente
def obter_nome
@nome
end
# método que permite retornar a idade do cliente
def obter_idade
@idade
end
end
# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)
# Efetua uma chamada ao método obter_nome
puts "O nome do cliente é: " + cliente.obter_nome
Ao executar este código Ruby nós teremos o seguinte resultado: O nome do cliente é: Osmar J. Silva |
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
Como usar o controle TStringGrid em suas aplicações Delphi - O componente TStringGrid do DelphiQuantidade de visualizações: 19872 vezes |
Um objeto da classe TStringGrid representa um controle de grid que pode ser usado em suas aplicações Delphi para simplificar o processo de se lidar com strings e objetos associados a esta. Veja a posição desta classe na hierarquia de classes do Delphi:
System.TObject
Classes.TPersistent
Classes.TComponent
Controls.TControl
Controls.TWinControl
Controls.TCustomControl
Grids.TCustomGrid
Grids.TCustomDrawGrid
Grids.TDrawGrid
Grids.TStringGrid
Esta classe implementa também as interfaces IInterfaceComponentReference e IInterface. O uso mais frequente de um controle TStringGrid é quando queremos apresentar um conteúdo texto em um formato tabular. Este controle fornece muitas propriedades para controlar a aparência da grid, assim como eventos e métodos que tiram vantagem da organização tabular da grid ao responder às ações do usuário. Para adicionar um controle TStringGrid ao seu formulário você só precisa acessar a aba Additional no Tool Palette, clicar no controle e arrastá-lo para a posição desejada no formulário. Por padrão, um controle TStringGrid contém 5 linhas e 5 colunas. Novas linhas e novas colunas podem ser adicionadas por meio das propriedades RowCount e ColCount da classe TCustomGrid. Cada célula da grid pode ter seu valor definido ou acessado usando-se a propriedade Cells. Veja um trecho de código no qual definimos o conteúdo da célula situada na segunda linha da primeira coluna do TStringGrid: procedure TForm1.Button1Click(Sender: TObject); begin // vamos definir o conteúdo da célula na segunda linha // da primeira coluna da grid StringGrid1.Cells[0, 1] := 'Osmar J. Silva'; end; Um controle TStringGrid introduz a possibilidade de associar um objeto com cada string na grid. Estes objetos podem encapsular quaisquer informações ou comportamento representado pelas strings apresentadas ao usuário. Se as strings a serem apresentadas na grid representarem valores de campos dos registros de um conjunto de dados (dataset), devemos usar um TDBGrid em vez de um TStringGrid. |
Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Como corrigir um erro ClassCastException em Java - Como tratar a exceção ClassCastException do JavaQuantidade de visualizações: 17474 vezes |
|
A exceção ClassCastException é um erro de tempo de execução que ocorre quando tentamos fazer um cast (coerção - conversão explícita) de uma classe para outra classe diferente desta ou que não seja uma superclasse desta. Em outras palavras, casts válidos para classes e interfaces devem seguir as regras abaixo: 1) Se NovoTipo é uma classe, a classe da expressão sendo convertida deve ser do tipo NovoTipo ou herdar de NovoTipo. 2) Se NovoTipo é uma interface, a classe da expressão sendo convertida deve implementar NovoTipo. Considere o código a seguir:
public class Estudos{
public static void main(String args[]){
Object x = new Integer(0);
System.out.println((String)x);
}
}
Este código compila normalmente. Porém, ao ser executado, a seguinte mensagem de erro é exibida: Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at Estudos.main(Estudos.java:4) Esta mensagem nos informa que a classe Integer não pode sofrer um cast para String, uma vez que Integer não é e nem herda de String. Veja agora a nova versão:
public class Estudos{
public static void main(String args[]){
Object x = new Integer(0);
System.out.println((Integer)x);
}
}
Veja que agora nós estamos fazendo o cast de uma referência Object para Integer. Embora Object não seja e nem herde de Integer, o sistema de tempo de execução sabe que x guarda atualmente uma referência a um Integer: Object x = new Integer(0); |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
JavaScript - JavaScript para iniciantes - Como obter o valor do maior número possível em JavaScript usando Number.MAX_VALUE |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





