Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
C# ::: Dicas & Truques ::: Data e Hora |
Como usar a classe Calendar em suas aplicações C#Quantidade de visualizações: 11973 vezes |
A classe Calendar da plataforma .NET está presente no namespace System.Globalization. Esta é uma classe abstrata (não pode ser instanciada e serve somente como classe base para futuras implementações) que implementa a interface ICloneable. Veja sua posição na hierarquia de classes da plataforma .NET:System.Object System.Globalization.Calendar Um calendário divide o tempo em unidades, tais como semanas, meses e anos. O número, comprimento e início destas divisões variam de acordo com cada calendário. Qualquer momento no tempo pode ser representado como um conjunto de valores numéricos usando um calendário em particular. Por exemplo, um equinócio vernal ocorreu em (1999, 3, 20, 8, 46, 0, 0.0) no calendário Gregoriano (Gregorian calendar), ou seja, 20 de março de 1999 C.E às 8:46:00:0.0. Uma implementação de Calendar pode mapear cada data na faixa de um calendário específico para um conjunto similiar de valores numéricos, e DateTime pode mapear tais conjuntos de valores numéricos para uma representação textual usando informações de Calendar e DateTimeFormatInfo. A representação textual pode ser dependente de cultura (culture-sensitive) (por exemplo, "8:46 AM March 20th 1999 AD" para a cultura en-US) ou independente de cultura (culture-insensitive) (por exemplo, "1999-03-20T08:46:00" no formato ISO 8601). Uma implementação de Calendar pode definir uma ou mais eras. A classe Calendar identifica tais eras como uma enumeração de inteiros na qual a era atual (CurrentEra) tem o valor 0. Para compensar a diferença entre o ano do calendário e a tempo real que a terra se movimenta ao redor do sol ou o tempo real que a lua se movimenta ao redor da terra, um ano bissexto tem um número diferente de dias que um ano padrão de um calendário. Cada implementação de Calendar define anos bissextos de forma diferenciada. Para fins de consistência, a primeira unidade de cada intervalo (por exemplo, o primeiro mês) recebe o valor 1. O trecho de código abaixo mostra como obter o calendário padrão não dependente de cultura e então exibir o valor numérico referente ao dia do mês:
static void Main(string[] args){
// using System.Globalization;
// obtém uma instância da implementação padrão de
// Calendar não dependente da cultura local
Calendar c = CultureInfo.InvariantCulture.Calendar;
// obtém a data e hora atual
DateTime agora = DateTime.Now;
// obtém o dia do ano
int dia = c.GetDayOfMonth(agora);
Console.WriteLine("O dia do mês é: {0}", dia);
// pausa o programa
Console.ReadKey();
}
O namespace System.Globalization inclui as seguintes implementações de Calendar: GregorianCalendar, HebrewCalendar, HijriCalendar, JapaneseCalendar, JulianCalendar, KoreanCalendar, TaiwanCalendar e ThaiBuddhistCalendar. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string Java é um valor numérico válido usando o método isDigit() da classe CharacterQuantidade de visualizações: 4 vezes |
|
O método isDigit() da classe Character nos permite verificar se um determinado caractere é um número, ou seja, está na faixa de 0 a 9. Podemos tirar proveito disso para varrer todos os caracteres de uma string, usando o método charAt() da classe String, e testar se essa string é um valor numérico válido. Veja o código completo para o exemplo:
package arquivodecodigos;
// Este exemplo mostra como verificar se uma
// string é um valor númerico
public class Estudos {
public static void main(String[] args) {
String valor = "2334554";
boolean valido = true;
for (int i = 0; i < valor.length(); i++) {
Character caractere = valor.charAt(i);
if (!Character.isDigit(caractere)) {
valido = false;
break;
}
}
if (valido) {
System.out.println("Valor numérico valido");
}
else {
System.out.println("NãO é um valor numerico valido");
}
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Valor numérico válido. |
C++ ::: STL (Standard Template Library) ::: unordered_map |
Como contar as frequências de palavras em uma frase ou texto em C++ usando um unordered_mapQuantidade de visualizações: 949 vezes |
|
Nesta dica mostrarei como podemos usar o mapa não ordenado (unordered_map) da linguagem C++ para contar as frequências das palavras individuais de uma palavra ou texto. O exemplo mostrado aqui serve como base para a criação de aplicações muito interessantes. Veja o código C++ completo:
#include <string>
#include <iostream>
#include <unordered_map>
#include <bits/stdc++.h>
using namespace std;
// protótipo da função que exibe a frequência de palavras em uma
// frase ou texto
void exibir_frequencias(const string &frase);
int main(int argc, char *argv[]){
// vamos declarar uma frase
// retirei acentos e pontuações de propósito
string frase = "Gosto de Java e Python pois quero aprender Java";
// mostramos a frase
cout << "A frase é: " << frase << endl;
// chamamos a função que exibe as frequencias
cout << "\nA frequência das palavras é:\n" << endl;
exibir_frequencias(frase);
cout << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
// função que exibe a frequência de palavras em uma
// frase ou texto
void exibir_frequencias(const string &frase){
// vamos declarar um mapa que terá como chave uma string
// e como valor um int
unordered_map<string, int> frequencias;
// agora convertemos a frase recebido como argumento
// em um objeto stringstream
stringstream ss(frase);
// e percorremos as palavras individualmente
string palavra;
while (ss >> palavra){
// essa palavra já existe no mapa?
if (frequencias.find(palavra) == frequencias.end()){
// adiciona esta palavra ao mapa
frequencias[palavra] = 1;
}
else{
// já existe. Vamos incrementar esta frequência
frequencias[palavra] = frequencias[palavra] + 1;
}
}
// agora percorremos o mapa não ordenado, acessando
// cada chave e mostrando a frequencia de cada palavra
unordered_map<string, int>:: iterator p;
for (p = frequencias.begin(); p != frequencias.end(); p++){
cout << "(" << p->first << ", " << p->second << ")\n";
}
}
Ao executar este código C++ nós teremos o seguinte resultado: A frase é: Gosto de Java e Python pois quero aprender Java A frequência das palavras é: (aprender, 1) (quero, 1) (pois, 1) (Gosto, 1) (Java, 2) (e, 1) (de, 1) (Python, 1) |
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing para iniciantes - Como usar o método getKeyCode() da classe KeyEvent para detectar qual tecla de direção (setas) foi pressionadaQuantidade de visualizações: 3553 vezes |
Em algumas situações nós precisamos detectar qual das teclas de direção (setas) o usuário pressionou. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_UP, KeyEvent.VK_DOWN, KeyEvent.VK_RIGHT ou KeyEvent.VK_LEFT. Veja o exemplo:
package estudos;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Janela extends JFrame implements KeyListener{
public Janela(){
super("Eventos do Teclado");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
// vamos adicionar o objeto listener
addKeyListener(this);
setSize(350, 250);
setVisible(true);
}
@Override
public void keyPressed(KeyEvent e){
switch(e.getKeyCode()){
// seta para cima
case KeyEvent.VK_UP:
JOptionPane.showMessageDialog(null, "A seta para cima foi pressionada");
break;
// seta para baixo
case KeyEvent.VK_DOWN:
JOptionPane.showMessageDialog(null, "A seta para baixo foi pressionada");
break;
// seta para a direita
case KeyEvent.VK_RIGHT:
JOptionPane.showMessageDialog(null, "A seta para a direita foi pressionada");
break;
// seta para a esquerda
case KeyEvent.VK_LEFT:
JOptionPane.showMessageDialog(null, "A seta para a esquerda foi pressionada");
break;
default:
JOptionPane.showMessageDialog(null, "Nenhuma tecla de direção foi pressionada");
break;
}
}
@Override
public void keyReleased(KeyEvent e){
// sem implementação
}
@Override
public void keyTyped(KeyEvent e){
// sem implementação
}
public static void main(String args[]){
Janela j = new Janela();
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
É importante observar que as teclas de direção podem ser detectadas somente nos eventos keyPressed e keyReleased. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como substituir todas as ocorrências de uma substring em uma string Delphi usando a função ReplaceStr()Quantidade de visualizações: 16989 vezes |
Algumas vezes precisamos substituir todas as ocorrências de uma substring em uma string. Em Delphi isso pode ser feito com o auxílio da função ReplaceStr(). Esta função requer a string na qual a substituição ocorrerá, a substring a ser substituída e a nova substring. O resultado será uma nova string resultante da substituição. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var frase: string; begin frase := 'PHP? Sim, eu gosto muito de PHP'; // vamos substituir todas as ocorrências de "PHP" por "Delphi' frase := ReplaceStr(frase, 'PHP', 'Delphi'); // vamos exibir o resultado ShowMessage(frase); end; Lembre-se de que esta função diferencia maiúsculas e minúsculas. Não se esqueça de adicionar a unit StrUtils no uses do seu formulário. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






