Marcos agradeço muito, deu super certo desta maneira e consegui terminar a
verificação das datas..
antes de responder eu estava fazendo assim
number = Convert.ToInt32(dif.Days) - 70;
dif2 = TimeSpan.Parse(number.ToString());
peguei a forma que tinha dito antes mais irei usar esta ultima mesmo por ser
menor ... veja como esta..
agradeço muito e provavelmente logo surjo com mais duvidas...
String data1, data2;
CultureInfo ci = new CultureInfo("pt-BR");
data1 =
reader.GetString(reader.GetOrdinal("dta_prev_ccn"));
data1 = data1.Insert(2, "/").Insert(5, "/");
data2 = DateTime.Now.ToString("01/05/2008",ci);
DateTime dt1 = Convert.ToDateTime(data1, ci);
DateTime dt2 = Convert.ToDateTime(data2, ci);
TimeSpan dif, dif2;
if (Convert.ToDateTime(data2, ci) <
Convert.ToDateTime(data1, ci))
{
dif = dt2.Subtract(dt1);
int number;
number = Convert.ToInt32(dif.Days);
number = Math.Abs(number);
dif = TimeSpan.Parse(number.ToString());
if (dif.Days >= 70)
{
dif2 = dif.Subtract(TimeSpan.Parse("70"));
}
else
{
dif2 = TimeSpan.Parse(dif.Days.ToString());
}
if (dif2.Days >= 10)
{
result = "D"; // Mensagem e bloqueia
}
else
{
result = "S"; // Mensagem
}
}
else
{
result = "N"; // Não é menor
}
}
Bjus e ate logo.
Post by Marcos MachadoOlá suelen,
dif2 = dif.Subtract(TimeSpan.Parse("70"));
peguei, transformei o numero em string colocando ele dentro de "", depois só
convertir a string em TimeSpan, e realizei a subtração usando o metodo
Subtract.
qualquer outra duvida, respondei em breve
Post by SuelenBom dia Marcos,
o codigo que me passou
int number;
number = Convert.ToInt32(dif.Days)-70;
deu super certo, porem eu preciso mando a subtração de dif.Days-70 para a
variavel dif2 que tem é TimeSpan e ai ela nao esta aceitando, pede para
converter int para TimeSpan, preciso que fique na dif2 pois abaixo deste if
que verifica se é maior que 70 vai ter um if que verifica se dif2 é maior que
10 dias
os messagebox nao ficarao, eu estava usando apenas para saber se o valor da
conta estava correto
if (dif.Days >= 70)
{
//int number;
//number = Convert.ToInt32(dif.Days) - 70;
//MessageBox.Show(dif.Days.ToString());
dif2 = dif.Days - 70;
}
else
{
dif2 = dif.Days;
//MessageBox.Show(dif2.Days.ToString());//MessageBox.Show(result.Days.ToString());
}
if (dif2.Days >= 10)
{
result = "D"; // Mensagem e bloqueia
}
else
{
result = "S"; // Mensagem
}
}
Obrigada... esta me ajudando muito =}
Post by Marcos Machadoolá suelen,
está ficando bom o código,
quanto ao subtrair o 70 nós podemos fazer uma converção para efetuar o
código, já que o numero tem uqe ser inteiro para tal.
int number;
number = Convert.ToInt32(dif.Days)-70;
quando for escrever
MessageBox.Show((dif.Days - 70) + " Texto");
// não precisa de conversão em nenhum dos dois casos, suelen, é implicito
falar que pode assumir inteiro, ou em string, uma vantagem de usar o timespan.
Qualquer coisa é só chamar, se quiser aqui está o meu e-mail para troca
Post by SuelenMarcos eu lhe agradeço muito, não consegui exatamente da forma que me
mostrou, mais se nao tivesse me falado do CultureInfo nao teria dado certo
nunca... veja como esta ficando
String data1, data2;
CultureInfo ci = new CultureInfo("pt-BR");
data1 =
reader.GetString(reader.GetOrdinal("dta_prev_ccn"));
data1 = data1.Insert(2, "/").Insert(5, "/");
data2 = DateTime.Now.ToString("dd/MM/yyyy",ci);
DateTime dt1 = Convert.ToDateTime(data1, ci);
DateTime dt2 = Convert.ToDateTime(data2, ci);
TimeSpan dif, dif2;
//Int16 dif2;
if (Convert.ToDateTime(data2, ci) <
Convert.ToDateTime(data1, ci))
{
dif = dt2.Subtract(dt1);
if (dif.Days >= 70)
{
//MessageBox.Show(dif.Days.ToString());
//dif2 = dif.Days-70;
}
else
{
MessageBox.Show(dif.ToString());
}
//MessageBox.Show(result.Days.ToString());
}
else
{
//Caso contrário
}
se puder me ajudar mais uma vez, eu so nao estou conseguindo subtrair 70
dias logo ali em cima onde coloquei
//dif2 = dif.Days-70;
grata!
Post by Marcos MachadoOi suelen,
Bom tem dois metodos quando passar os dados, um é adicionar as barras ou
retirar as barras da outra data.
vou colocar aqui o metodo para a primeira opção que é melhor na minha opnião.
string dataBanco = "21082008";
string dataLocal = "30/11/2008";
DateTime date1 = new DateTime();
DateTime date2 = new DateTime();
TimeSpan dateTime;
dataBanco = dataBanco.Insert(2, "/").Insert(5, "/");
date1 = DateTime.Parse(dataLocal);
date2 = DateTime.Parse(dataBanco);
dateTime = date1 - date2;
label.Text = dateTime.Days + " Dias";
outra coisa suelen talvez tenha que colocar o using System.Globalization; em
cima do código para poder fazer pegar o cultureinfo.
qualquer duvida estarei a disposicao.
Post by SuelenMarcos, estou usando o VS 2008 e não tem esta propriedade CultureInfo..
porem eu preciso de ajuda mais urgente em uma outra coisa se puder me ajudar
por favor..
é com data...
é assim, eu preciso fazer uma comparação da data atual do servidor com uma
data que tenho definida no banco de dados que seria uma data prevista, so que
a data prevista no banco de dados esta cadastrada para aparecer assim
21082008, sem barra nada..
como eu posso fazer para comparar essas datas e saber quantos Dias há de
diferença..
agradeço muito se puder me ajudar...
Post by Marcos MachadoOla suellen,
eu acho que tem a ver com a cultura do programa.
faça o seguinte
CultureInfo ci = new CultureInfo("pt-BR");
label13.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss", ci);
acho que irá resolver, sistema estiver com a cultura pt-BR vai ficar com a
mesma hora dele.
Post by SuelenMais onde eu posso achar esta configuração?
obrigada.
Obs: a hora que fica logo em cima no emulador esta correta com a do sistema,
so a que aparece com a label que esta uma hora a mais, os minutos e segundos
estao corretos tbm.
Post by Marcos MachadoOlá Suelen,
a configuração de data e hora que ele está pegando do sistema talvez esteja
errada,
veja a configuração de regionalização.
Post by SuelenOlá, estou com um problema, quero exibir a hora do sistema de um mobile,
label13.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
porém ele nao esta pegando a hora exata, esta sempre uma hora adiantado...
o que há de errado?