Intervalo entre datas PHP

Samis_Carecatura

 

 

 

 

 

 

 

 

 

 

 

Boa tarde caros seguidores, como sempre eu posto minhas dificuldades e suas soluções.

Tive um problema em trazer uma data do banco e comparar com uma outra de data de uma outra tabela e fazer a diff dela, então segue abaixo a solução, espero ajudar alguem com essa dúvida.

//Primeiramente setamos as duas datas, inicial e final para lançarmos dentro da classe que fará a comparação, e convertemos para o formato TimeStamp.
$DataInicial = date(‘Y-m-d’, strtotime($row[“DataInicial”]));
$DataFinal = date(‘Y-m-d’, strtotime($row[“DataFinal”]));

$inicio_evento = strtotime($DataInicial );
$fim_evento= strtotime($DataFinal );

//Neste trecho, nós já podemos saber a diferença entre as duas datas
$diferenca = $inicio_evento – $fim_evento;

$dias = intval($diferenca / 86400);

//Agora basta exibir o resultado para seu usuário.
echo “Ainda restam $dias dia(s).”;

 

É isso ai, espero ter ajuda alguém, ótima tarde de segunda-feira para todos!

Expressão Regular no C#

10390495_867086803307173_3718949370503317271_n

 

 

 

 

 

 

 

 

 

 

Uma expressão regular ou ( regex ), abreviação do inglês para ( regular expression) provê uma forma concisa e flexível de identificar cadeias de caracteres, como por exemplo caracteres particulares, palavras reservadas, palavras ou padrões de caracteres.

Expressões regulares são escritas numa linguagem formal que pode ser interpretada por um processador de expressão regular, um programa que, ou serve para gerar e analisador expressões sintáticas ou examinar textos e identificar partes que não são de seu interesse.

Pois bem, vou dar um exemplo simples de uso de uma Expressão Regular.

Vamos usar para verificar se seu usuário digitou um e-mail válido. Neste exemplo estou usando VS2010 e C# 3.

A primeira coisa a se fazer é importar a liby:

using System.Text.RegularExpressions;

Você agora irá criar uma instancia dessa classe, que é a Regex, e já passando a cadeia de caracteres como segue abaixo.

Regex regex = new Regex(@”^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$”);

E para verificar se sua condições esta satisfeita faça o seguinte:

if (regex.IsMatch(txtemail.text))

Exeplo na prática: Regex regex = new Regex(@”^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$”);

if (regex.IsMatch(txtemail.text)) { //Email válido } Else { //Email invalido }

 

Espero ter ajudado!

Email Windows Forms

Image

Boa noite!
Em uma de minhas necessidade de ter na minha aplicação uma área onde o cliente poderia entrar em contato comigo, sem precisar sair da app, criei um suporte on-line, onde eu recebo as mensagens no meu email quando um cliente de alguma app da Vipersys necessita de enviar uma tela de erro ou até mesmo sugerir alguma novidade no sistema entre muitas outras coisas, cabe a você agora a criatividade, segue abaixo o código com alguns comentários que achei necessário.

// Você precisará incluir as seguintes namespaces
using System;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
using System.Net.Mime;
using System.Net;

namespace EnvioEmailCS
{
public partial class Form1 : Form
{
// Aqui você instancia a classe MailMessage
MailMessage eMail = new MailMessage();

public Form1()
{
InitializeComponent();
}

//Neste caso estou colocando para disparar o evento de enviar o email no load do meu form
private void Form1_Load(object sender, EventArgs e)
{
// Aqui você seta os parâmetros de envio do email
// Estou usando variáveis, mas você pode substituir por componentes (TextBox)
string strEmailCLiente = “vipersys@gmail.com”;
string strSenha = “########”;
string strEmailSuporte = “vipersysweb@hotmail.com”;
string strAssunto = “Email com C#”;
string strMensagem = “Vipersys Tecnologia da Informação”;
using (MailMessage mailMessage = new MailMessage(new MailAddress(strEmailSuporte), new MailAddress(strEmailSuporte)))
{
//Atribuo o conteúdo aos dois principais atores no envio do email
//A propiedade Body, leva o título/assunto, preenche o corpo do email
//A propiedade Subject, leva o corpo do email
mailMessage.Body = strAssunto;
mailMessage.Subject = strMensagem;
try
{
SmtpClient SmtpServer = new SmtpClient();
SmtpServer.Credentials = new System.Net.NetworkCredential(strEmailCLiente, strSenha);
SmtpServer.Port = 587;

SmtpServer.Host = “smtp.gmail.com”;
SmtpServer.EnableSsl = true;

eMail = new MailMessage();
String[] addr = strEmailSuporte.Split(‘,’);
eMail.From = new MailAddress(strEmailCLiente);
Byte i;
for (i = 0; i < addr.Length; i++)
eMail.To.Add(addr[i]);

eMail.Subject = strAssunto;
eMail.Body = strMensagem;

eMail.IsBodyHtml = true;
eMail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
eMail.ReplyTo = new MailAddress(strEmailSuporte);
SmtpServer.Send(eMail);
MessageBox.Show(“Email enviado com sucesso!”, “Vipersys Tecnologia”, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
this.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, “EMail”, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}

}
}
}

label transparente

Imagem

 

Bom dia comunidade, hoje eu tive um pequeno problema com um label, vou relatar e em seguida dar a solução encontrada. Pois bem, eu tinha uma PictureBox no meu formulário, pois precisava de um fundo na tela, e quando eu colocava o label no form, o fundo ficava cinza e eu não conseguia colocar ele transparente pelas propriedades, tive que perder uns minutinhos e fazer uma pesquisa e cheguei à tão esperada solução do problema, segue abaixo a solução.

==========================Solução==========================

            lblCartao.Parent = imgCiaFundo;
            lblCartao.BackColor = Color.Transparent;
            lblCartao.ForeColor = Color.White;

==========================Solução==========================

 

=========================Explicação=========================

            lblCartao.Parent = imgCiaFundo; // lblCartao é minha label, imgCiaFundo é minha picture box
            lblCartao.BackColor = Color.Transparent; // Aqui eu seto a propriedade backcolor com o valor transparente
            lblCartao.ForeColor = Color.White; //Aqui somente coloca a cor da fonte da label branca

=========================Explicação=========================

 

Espero ter ajudado alguém, forte abraço!

 

Erro com tamanho de inteiro C#

Depois de um pico de energia aqui que eu perdi umas linhas de C# digitada, eu pra me desestressar, resolvi escrever um post.

E sem falar no calor imenso aqui na cidade de Rio Quente. Vamos ao que interessa!!!

Alguém por ai já deve ter passado pelo seguinte problema.

ERRO: Valor era muito grande ou muito pequeno para Int32.

No meu teste eu usei um tipo ” INT ” com o seguinte tamanho:  1564985632159 que acabou estourando pelo tamanho. Usei também a seguinte rotina abaixo para fazer o teste.

int UltimoHodometro = Convert.ToInt32(drUltimoHodometro[“Hodometro”].ToString());
int HodometroAtual = Convert.ToInt32(txtHodometro.Text);

if (HodometroAtual <= UltimoHodometro)
{
//testa isso ou aquilo ou sei lá o que
}

Usando esta rotina acima e o tamanho informado no teste, com certeza você reberá o seguinte erro: ( Valor era muito grande ou muito pequeno para Int32. )

Para resolver este problema é muito fácil, vou postar abaixo uma rotina que sana este problema e em seguida vou explicar.

long UltimoHodometro = Convert.ToInt64(drUltimoHodometro[“Hodometro”].ToString());
long HodometroAtual = Convert.ToInt64(txtHodometro.Text);

if (HodometroAtual <= UltimoHodometro)
{
//testa isso ou aquilo ou sei lá o que
}

Observe o que foi alterado:

int -> Long
Convert.ToInt32 – > Convert.ToInt64

Isso na mesma rotina, a diferença é que para você trabalhar com inteiros de 64bits você deve usar o Long e vice versa.

A solução então é essa basta usar o Long que seus problemas vão diminuir!

Boa tarde a todos!

Gerar um documento xls via DatagridView

Samis_Carecatura

 

 

 

 

 

Boa tarde a todos, como de meu costume, segue mais um post no blog da VIpersys, esse eu estou ensinando como gerar um documento xls exportando do seu datagrid de sua aplicação.

 

 

 

A primeira coisa a fazer é desenvolver o método que irá coletar as informações e gerar o documento, segue abaixo o método.

 

/// <summary>
/// Gera um documento no formato exel com as locações do mes referencia
/// </summary>
/// <param name=”GridAtual”></param>
/// <param name=”filename”></param>
private void ExportaGridProprietarios(DataGridView GridAtual, string filename)
{
string stOutput = “”;
string sHeaders = “Relatório”;

for (int j = 0; j < GridAtual.Columns.Count; j++)
sHeaders = sHeaders.ToString() + Convert.ToString(GridAtual.Columns[j].HeaderText) + “\t”;
stOutput += sHeaders + “\r\n”;

for (int i = 0; i < GridAtual.RowCount; i++)
{
string stLine = “”;
for (int j = 0; j < GridAtual.Rows[i].Cells.Count; j++)
stLine = stLine.ToString() + Convert.ToString(GridAtual.Rows[i].Cells[j].Value) + “\t”;
stOutput += stLine + “\r\n”;
}

Encoding utf16 = Encoding.GetEncoding(1254);
byte[] output = utf16.GetBytes(stOutput);
FileStream fs = new FileStream(filename, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(output, 0, output.Length);
bw.Flush();
bw.Close();
fs.Close();
}

Agora vou mostrar o método que irá invocar o método que será o responsável por toda a loucura. Segue abaixo

/// <summary>
/// Invoco o método responsável
/// </summary>
/// <param name=”sender”></param>
/// <param name=”e”></param>
private void cmdImprimir_Click(object sender, EventArgs e)
{
SaveFileDialog RelProprietarios = new SaveFileDialog();
RelProprietarios.Filter = “Excel Documents (*.xls)|*.xls”;
RelProprietarios.FileName = txtProprietario.Text + “-” + DateTime.Now.Month + “-” + DateTime.Now.Year + “.xls”;
if (RelProprietarios.ShowDialog() == DialogResult.OK)
{
ExportaGridProprietarios(GridLocacoes, RelProprietarios.FileName);
}
}

OBS: o método foi extraído de uma apicação minha que esta funcionando normalmente, caso haja alguma dúvida entre em contato.

Desabilitar ASLT+F4 no C#

Como inibir a função ALT+F4, para que o usuário não feche o aplicativo sem passar pelos métodos necessários, segue abaixo o código

       protected override bool ProcessDialogKey(Keys keyData)
        {
            if(keyData == (Keys.Alt | Keys.F4))
            {
                return true;
            }
            else
            {
            return base.ProcessDialogKey(keyData);
            }
        }