Você está aqui: PHP ::: Dicas & Truques ::: Data e Hora

Como gerar um calendário mensal completo para um determinado mês e ano usando PHP

Quantidade de visualizações: 1592 vezes
Nesta dica eu mostro como podemos usar as principais funções de data e hora da linguagem PHP para montar um calendário PHP completo (com comentários e fácil de modificar). Basta passar um mês e ano e a função se encarrega do restante.

Este código é muito útil em aplicações PHP para escolas, faculdades, sistemas financeiros, etc. Veja o resultado na imagem abaixo:



E agora o código completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  // função que permite montar o calendário
  function montar_calendario($mes, $ano){
    // um vetor para guardar os meses
    $meses = array(1 => 'Janeiro', 2 => 'Fevereiro', 
      3 => 'Março', 4 => 'Abril', 5 => 'Maio', 
      6 => 'Junho', 7 => 'Julho', 8 => 'Agosto', 
      9 => 'Setembro', 10 => 'Outubro', 11 => 'Novembro',
      12 => 'Dezembro');
  
    // um vetor com os dias da semana
    $dias_semana = array('Dom', 'Seg', 'Ter', 'Qua',
      'Qui', 'Sex', 'Sáb');
  
    // vamos obter o primeiro dia do calendário
    $primeiro_dia = mktime(0, 0, 0, $mes, 1, $ano);
    // obtém a quantidade de dias no mês  
    $dias_mes = date('t', $primeiro_dia);  
    // dia da semana que o calendário inicia (começa em 0)
    $dia_inicio = date('w', $primeiro_dia);
    
    // cria a tabela HTML para o calendário
    echo '<table border="1" cellspacing="0" cellpadding="4">
      <tr><th colspan="7">'. $meses[$mes] . ' - ' . 
       $ano . '</th>
      </tr>
      <tr><td align="center">';
       echo implode('</td><td align="center">', $dias_semana);
    echo '</td></tr>';
   
    // precisamos de células vazias até encontrarmos
    // o dia inicial da semana
    if($dia_inicio > 0){ 
      for($i = 0; $i < $dia_inicio; $i++){ 
        echo '<td>&nbsp;</td>'; 
      }
    }
   
    // agora já podemos começar a preencher o
    // calendário
    for($dia = 1; $dia <= $dias_mes; $dia++ ){
      if($dia_inicio == 0){
        // vamos colorir o domingo de vermelho
        $estilo = ' style="color: red"';
      } 
      else{
        $estilo = '';
      }     

      // vamos colocar a data de hoje sublinhada
      if(($dia == date("j")) && ($mes == date("n")) && 
       ($ano == date("Y"))){
         echo '<td ' . $estilo . ' align="center"><u>' 
           . $dia . '</u></td>';
      }
      else{
        echo '<td ' . $estilo . ' align="center">' . 
          $dia . '</td>';
      }
     
      // vamos incrementar o dia de referência 
      $dia_inicio++;
     
      // já precisamos adicionar uma nova linha na tabela?
      if($dia_inicio == 7){
        $dia_inicio = 0;
        echo "</tr>";

        if($dia < $dias_mes){
          echo '<tr>';
        }
      }
    } // fim do laço for
   
    // agora preenchemos as células restantes
    if($dia_inicio > 0){
      for($i = $dia_inicio; $i < 7; $i++){
        echo '<td>&nbsp;</td>';
      }
   
      echo '</tr>';
    }
 
    echo '</table>';
  }
 
  // vamos montar o mês de março de 2021
  montar_calendario(3, 2021);
?>
 
</body>
</html>


Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como testar se uma matriz é uma matriz identidade usando Java

Quantidade de visualizações: 617 vezes
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero.

Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas:



Veja um código Java completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos{
  public static void main(String[] args){
    int n = 3; // ordem da matriz quadrada
    int matriz[][] = new int[n][n]; // matriz quadrada

    // para efetuar a leitura do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar os elementos da matriz
    for (int i = 0; i < n; i++){
      for (int j = 0; j < n; j++) {
        System.out.print("Elemento na linha " + (i + 1) +
          " e coluna " + (j + 1) + ": ");
        matriz[i][j] = Integer.parseInt(entrada.nextLine());
      }
    }
    
    // agora verificamos se a matriz é uma matriz identidade
    boolean identidade = true;
    for(int linha = 0; linha < n; linha++){
      for(int coluna = 0; coluna < n; coluna++){
    	if(matriz[linha][coluna] != 1 && matriz[coluna][linha] != 0){
    	  identidade = false;
    	  break;
	}
      }
    }
    
    // agora mostramos a matriz lida
    System.out.printf("\n");
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        System.out.printf("%d ", matriz[i][j]);
      }
      System.out.printf("\n");
    }

    if (identidade){
       System.out.printf("\nA matriz informada é uma matriz identidade.\n");
    }
    else{
      System.out.printf("\nA matriz informada não é uma matriz identidade.\n");
    }
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Elemento na linha 1 e coluna 1: 1
Elemento na linha 1 e coluna 2: 0
Elemento na linha 1 e coluna 3: 0
Elemento na linha 2 e coluna 1: 0
Elemento na linha 2 e coluna 2: 1
Elemento na linha 2 e coluna 3: 0
Elemento na linha 3 e coluna 1: 0
Elemento na linha 3 e coluna 2: 0
Elemento na linha 3 e coluna 3: 1

1 0 0 
0 1 0 
0 0 1 

A matriz informada é uma matriz identidade.



Java ::: Java Swing - Componentes Visuais ::: JList

Como retornar os índices dos itens selecionados em uma JList de seleção múltipla do Java Swing

Quantidade de visualizações: 7586 vezes
Em outra dica desta seção nós vimos como obter e retornar os valores selecionados em uma JList de múltipla seleção do Java Swing. Agora veremos como retornar os índices dos valores selecionados. Para isso nós vamos usar o método getSelectedIndices(), que retorna um vetor (array) de inteiros.

Note o uso da constante ListSelectionModel.MULTIPLE_INTERVAL_SELECTION fornecida para o método setSelectionMode() da JList para indicar a forma de seleção que estamos usando no exemplo.

Veja o código Java Swing completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudos extends JFrame{
  JList lista;  

  public Estudos() {
    super("A classe JList");
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
    
    // Cria os itens da lista
    String nomes[] = {"Carlos", "Marcelo", "Fabiana",
      "Carolina", "Osmar"};

    // Cria a JList
    lista = new JList(nomes);
 
    // Define a seleção múltipla para a lista
    lista.setSelectionMode(
      ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

    // Um botão que permite obter os índices do itens 
    // selecionados
    JButton btn = new JButton("Obter índices selecionados");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          int[] indices = lista.getSelectedIndices();
          String res = "Índices selecionados:\n";

          for(int i = 0; i < indices.length; i++)
            res += indices[i] + "\n";

          JOptionPane.showMessageDialog(null, res);
        }
      }
    );

    // Adiciona a lista à janela
    c.add(new JScrollPane(lista));

    // Adiciona o botão à janela
    c.add(btn);  

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Lembre-se que as teclas Ctrl ou Shift devem estar pressionadas enquanto escolhemos os itens de uma JList de seleção múltipla.


C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Algoritmos Resolvidos de C++ - Escreva um programa C++ que efetue a soma dos elementos da diagonal principal de uma matriz

Quantidade de visualizações: 13208 vezes
Exercício Resolvido de C++ - Escreva um programa C++ que efetue a soma dos elementos da diagonal principal de uma matriz

Pergunta/Tarefa:

Em álgebra linear, a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito (conforme mostrado na saída do problema proposto abaixo).

Escreva um programa C++ que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal principal. Sua saída deverá ser parecida com a imagem abaixo:



Resposta/Solução:

Veja a resolução comentada deste exercício:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[])
{
  int matriz[3][3]; // uma matriz de três linhas e três colunas
  int soma_diagonal = 0; // guarda a soma dos elementos na diagonal principal

  // vamos ler os valores para os elementos da matriz
  for(int i = 0; i < 3; i++){ // linhas
    for(int j = 0; j < 3; j++){ // colunas
      cout << "Valor para a linha " << i << " e coluna " << j << ": ";
      cin >> matriz[i][j];       
    }       
  }
  
  // vamos mostrar a matriz da forma que ela foi informada
  cout << "\n\nValores na matriz\n" << endl;
  for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
      cout << setw(5) << matriz[i][j];   
    }
    
    cout << "\n" << endl;       
  }
  
  // vamos calcular a soma dos elementos da diagonal principal
  for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
      if(i == j){
        soma_diagonal = soma_diagonal + matriz[i][j];
      }
    }
  }
  
  cout << "A soma dos elementos da diagonal principal e: " << 
    soma_diagonal << endl;
  cout << "\n" << endl;
  
  system("PAUSE");
  return EXIT_SUCCESS;
}



Delphi ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto adjascente dadas as medidas da hipotenusa e do cateto oposto em Delphi

Quantidade de visualizações: 1321 vezes
Nesta dica mostrarei como podemos tirar proveito do Teorema de Pitágoras para obter a medida do cateto adjascente quando temos as medidas da hipotenusa e do cateto oposto. Este teorema diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos", o que torna a nossa tarefa, na linguagem Delphi, muito fácil.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[b^2 = c^2 - a^2\]

Veja que agora o quadrado do cateto adjascente é igual ao quadrado da hipotenusa menos o quadrado do cateto oposto. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem Delphi:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm2.Button1Click(Sender: TObject);
var
  a, b, c: Real;
begin
  c := 36.056; // medida da hipotenusa
  a := 20; // medida do cateto oposto

  // agora vamos calcular a medida da cateto adjascente
  b := sqrt(sqr(c) - sqr(a));

  // e mostramos o resultado
  Edit1.Text := 'A medida do cateto adjascente é: ' +
    FloatToStr(b);
end;

Note que este cálculo foi feito a partir do evento Click de um botão Button1 e o resultado foi exibido na propriedade Text de uma caixa de texto Edit1.

Ao executar este código Delphi nós teremos o seguinte resultado:

A medida do cateto adjascente é: 30,0005855942847

Como podemos ver, o resultado retornado com o código Delphi confere com os valores da imagem apresentada.


C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Vetores e matrizes em C# - Como ordenar um vetor de inteiros usando o método Sort() da classe Array do C#

Quantidade de visualizações: 15964 vezes
Nesta dica mostrarei como podemos usar o método Sort() da classe Array da linguagem C# para classificar um vetor de inteiros em ordem crescente. Note que o método Sort() é estático e modifica o conteúdo do array original.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos{
  class Program{
    static void Main(string[] args) {
      // cria e inicializa um array de inteiros
      int[] valores = { 4, 69, 1, 0, 17, 23, 14 };

      Console.WriteLine("Ordem original:");
      for (int i = 0; i < valores.Length; i++)
        Console.WriteLine(valores[i]);

      // ordena o array
      Array.Sort(valores);

      // exibe os elementos na ordem crescente
      Console.WriteLine();
      Console.WriteLine("Ordem crescente:");
      for (int i = 0; i < valores.Length; i++)
        Console.WriteLine(valores[i]);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código nós teremos o seguinte resultado:

Ordem original:
4
69
1
0
17
23
14

Ordem crescente:
0
1
4
14
17
23
69


Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 61 usuários muito felizes estudando em nosso site.