Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

datetime problem u evidenciji placanja

[es] :: .NET :: datetime problem u evidenciji placanja

[ Pregleda: 3124 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon datetime problem u evidenciji placanja05.02.2009. u 07:55 - pre 184 meseci
evo ovako, trazila sam ovde po forumu, ali kod mene to ne radi. imam tabelu uplateisplate i u njoj datum racuna i rok placanja. kod pregleda u datagridview treba da mi se redovi kod kojih je rokplacanja manji od 5 dana u odnosu na danasnji datum zacrvene, tj da program javi kad je nesto blizu krajnjeg roka, gde je blizu 5 dana. koristim c# 2008 i ms sql 2005. treba mi neki between 'danasnji datum' and 'danasnji - 5', videla sam ovde neke odgovore: "danas - interval 5 day", "sysdate-5 and sysdate" i sl. al to kod mene ne radi.probala sam ovako nesto "select * from uplateisplate where rokplacanja between " + (Convert.ToInt32(DateTime.Now) - 5) + "and DateTime.Now" ali ni to ne radi, zbog convertovanja. molim za pomoc, hvala
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon Re: datetime problem u evidenciji placanja05.02.2009. u 09:13 - pre 184 meseci
nasla sam!

SELECT *
FROM UPLATEISPLATE
WHERE (RokPlacanja BETWEEN GETDATE() - 5 AND GETDATE())
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
82.117.202.*

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: datetime problem u evidenciji placanja05.02.2009. u 09:52 - pre 184 meseci
SELECT datediff(dd, dateadd(dd, -5, getutcdate()), getutcdate())

Za operacije sa datumom koristi datediff, to ti je najbolja varijanta za sve operacije posto mozes da specificiras da li ces raditi sa danima/godinama/sekundama bilo sta.
Tako sam za danas minus 5 dana korisio dateadd(dd, -5, getutcdate())

Za razliku izmedju dana koristi datediff iz istog razloga.
Every hamster has his day.
 
Odgovor na temu

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon Re: datetime problem u evidenciji placanja05.02.2009. u 09:59 - pre 184 meseci
mislis da ovo moje resenje nije dobro?
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

.:Marvin:.
Taurunum

Član broj: 36626
Poruke: 94
91.143.212.*



Profil

icon Re: datetime problem u evidenciji placanja05.02.2009. u 10:35 - pre 184 meseci
datediff je super f-ja, posto, kao sto Fedya rece, mozes da biras da li ces da oduzimas / sabiras dane, mesece i godine.
Pre ili kasnije ce ti opet zatrebati, pa je bolje da pocnes sto pre da je koristis.
 
Odgovor na temu

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon Re: datetime problem u evidenciji placanja05.02.2009. u 11:04 - pre 184 meseci
ok, ok, ali to bi mi bilo resenje da on u datagrid stavi SAMO te koji ispunjavaju uslov. a meni trebaju u pregledu svi podaci ali da su samo oni koji odgovaraju uslovi oznaceni crveno. malo sam se glupirala pa probala sa "foreach (DataRow d in ds.Tables["uplateisplate"].Rows)
if (DateTime.Now.ToLongDateString() - d["rokplacanja"].ToString() <= "00/05/0000")
//oboj crveno"

i naravno ne radi. ne mogu u okviru dataseta i datagrida da ubacim taj select sto ste mi dali da mi ne bi dao samo te podatke.
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: datetime problem u evidenciji placanja05.02.2009. u 11:42 - pre 184 meseci
Ovo je .NET pitanje ili SQL pitanje?
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
82.117.202.*

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: datetime problem u evidenciji placanja05.02.2009. u 11:43 - pre 184 meseci
To je vec pitanje za .NET forum.
Ono sto vidim je da ti pokusavas da obijs red u dataset-u a ne u datagridu. Ako se dobro secam (nisam radio sa datasetovima/gridom vec par godina ;) ) grid ima event OnBind ili tako nesto, koji dobija jedan po jedan red, u tom eventu treba da proveris da li odgovora uslovu i obojis ga. No, ponavljam, sigurno ces dobiti bolji odgovor na .NET forumu.
Every hamster has his day.
 
Odgovor na temu

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon Re: datetime problem u evidenciji placanja05.02.2009. u 11:58 - pre 184 meseci
u pravu ste, ovo sad kad se ovako postavi pitanje nije vise sql vec .net. probacu taj onbind mada meni nije bitno kada se izvrsava nego kako s obzirom da sad moram raditi sa datetime.now il sta vec. sve sto meni treba je kako oduzeti dva datuma tako da se dobije broj dana izmedju njih. hvala

[Ovu poruku je menjao mayana dana 05.02.2009. u 13:10 GMT+1]
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
219.138.61.*

Sajt: www.mika.rs


+6 Profil

icon Re: datetime problem u evidenciji placanja05.02.2009. u 13:21 - pre 184 meseci
Koristi event datagridview-a CellFormatting gde ces da proveris da li je to kolona sa datumom, i onda preko indeksa reda menjaj backColor.
Za datum pogledaj ovo:
Code:
DateTime nekiDatum;
TimeSpan ts;
nekiDatum = DateTime.Now;
nekiDatum = nekiDatum.AddDays(-10);

ts = DateTime.Now.Subtract(nekiDatum);
if(ts.Days > 5) System.Diagnostics.Debug.WriteLine("Trt");

America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon Re: datetime problem u evidenciji placanja06.02.2009. u 07:05 - pre 184 meseci
ok, uradila sam ovo: foreach (DataRow r in ds.Tables["uplateisplate"].Rows)
{
DateTime nekiDatum=Convert.ToDateTime(r["rokplacanja"].ToString());

TimeSpan ts;


ts = DateTime.Now.Subtract(nekiDatum);
if (ts.Days < 5 && ts.Days > 0)
{
MessageBox.Show(ts.Days.ToString());

}

to mi sad nadje te datume i svaki put kad nadje ispise koliko dana je ostalo, tako sam samo proverila da li radi. i radi, samo ne znam sad kako da uzmem taj red i da ga obojim.
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon Re: datetime problem u evidenciji placanja06.02.2009. u 11:23 - pre 184 meseci
resila!!!
foreach (DataRow r in ds.Tables["uplateisplate"].Rows)
{
DateTime nekiDatum = Convert.ToDateTime(r["rokplacanja"].ToString());
TimeSpan ts;
ts = DateTime.Now.Subtract(nekiDatum);
if (ts.Days < 5 && ts.Days > 0)
{
int Index = ds.Tables["uplateisplate"].Rows.IndexOf(r);
this.dgvPregledUI.Rows[Index].DefaultCellStyle.BackColor = Color.Red;

}
}
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon Re: datetime problem u evidenciji placanja06.02.2009. u 11:37 - pre 184 meseci
nije bilo dobro. radilo je da pokaze koji su vec trebali da se plate u zadnjih 5 dana. a koji ce trebati u narednih 5 dana radi ovako:
foreach (DataRow r in ds.Tables["uplateisplate"].Rows)
{
DateTime nekiDatum = Convert.ToDateTime(r["rokplacanja"].ToString());
TimeSpan ts;
DateTime novi;
novi = DateTime.Now.AddDays(5);
ts = novi.Subtract(nekiDatum);
if (ts.Days < 5 && ts.Days > 0)
{
int Index = ds.Tables["uplateisplate"].Rows.IndexOf(r);
this.dgvPregledUI.Rows[Index].DefaultCellStyle.BackColor = Color.Red;

}
}
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: datetime problem u evidenciji placanja06.02.2009. u 11:50 - pre 184 meseci
Ovo tvoje resenje mi se cini mnogo "prljavim" jer zavisi od sinhronizacije bindinga izmedju dataseta i grid-a. Sto nisi poslusala dusty-ev predlog sa eventom na gridu?
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon Re: datetime problem u evidenciji placanja06.02.2009. u 12:26 - pre 184 meseci
zato sto ne znam kako. nisam bas toliko strucna kao vi... uostalom, ovo je mala aplikacijica i bitno mi je da radi ono sto sam htela. nece biti 300.000 podataka. verovatno i nece izaci odavde (ja sam pripravnik i to mi je bilo dato kao zadatak da se vidi koliko se razumem u c#).

[Ovu poruku je menjao mayana dana 06.02.2009. u 13:37 GMT+1]
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: datetime problem u evidenciji placanja06.02.2009. u 12:48 - pre 184 meseci
Pa ako ti senior kolega radi code review ovako nesto ne moze da mu promakne i moze samo lose da se odrazi po razumevanje C#-a; sto se strucnosti tice, ko pita ne skita, bolje da si pitala dusty-a za obrazlozenje (siguran sam da bi ti pomogao, nije mu prvi put), niko od nas se nije naucen rodio i nije sramota pitati kad nesto nije jasno.
U svakom slucaju sad nisam pri radnom okruzenju-u ali ako ti niko ne odgovori do veceras okacicu ti konkretan primer kako se ovo radi u grid events.



Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
219.138.61.*

Sajt: www.mika.rs


+6 Profil

icon Re: datetime problem u evidenciji placanja06.02.2009. u 13:40 - pre 184 meseci
U pravu je mmix, ako ovo vidi neki senior programer, ne samo da neces dobiti posao, nego je vrlo moguce da ces i batine da dobijes

Shalu na stranu, zaboravljas da je vrlo moguce da ce neko da uradi sortiranje, i onda nije mapiranje 1 prema 1 (grid prema tabeli).
Ima vise nacina da to uradis, jedan nacin je 'manuelno', da nakon bindovana pozoves ovaj kod:
Code:

DataRow row;
DateTime date;
TimeSpan ts;

foreach (DataGridViewRow gridRow in dgvPregledUI.Rows)
{
        row = (DataRow)gridRow.DataBoundItem;
        date = (DateTime)row["rokPlacanja"];
        ts = DateTime.Now.Subtract(date);

         if(ts.Days >= 0 && ts.Days <= 5)
               gridRow.DefaultCellStyle.BackColor = Color.Red;

}

sto u principu nije mnogo lose. Ali ako dodajes podatke u tu tabelu, onda ces morati nako svakog dodavanja novog reda da pozivas tu metodu.

Drugi nacin, po meni bolji, je preko eventa CellFormatting (znaci, ides na properties DataGridView, pa na munjicu , nadjes ovaj event i dupli klik), jer imas vecu kontrolu nad celijom sa datumom (npr. da umesto datuma ispise "Kasni 3 dana !"), a i nema greske od gore.
Code:
void dgvPregledUI_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
     DateTime date;
     TimeSpan ts;

     if (dgvPregledUI.Columns[e.ColumnIndex].DataPropertyName == "rokPlacanja")
     {
          date = (DateTime)e.Value;
          ts = DateTime.Now.Subtract(date);
          if (ts.Days >= 0 && ts.Days <= 5){
              dgvPregledUI.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
              e.Value = "Kasni " + ts.Days.ToString() + " dana !";
          }
      }
}


America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
79.101.198.*

Jabber: DarkMan


Profil

icon Re: datetime problem u evidenciji placanja06.02.2009. u 14:35 - pre 184 meseci
Citat:
dusty
Code:
void dgvPregledUI_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
     DateTime date;
     TimeSpan ts;

     if (dgvPregledUI.Columns[e.ColumnIndex].DataPropertyName == "rokPlacanja")
     {
          date = (DateTime)e.Value;
          ts = DateTime.Now.Subtract(date);
          if (ts.Days >= 0 && ts.Days <= 5){
              dgvPregledUI.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
              e.Value = "Kasni " + ts.Days.ToString() + " dana !";
          }
      }
}


Umesto:
Code:

dgvPregledUI.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;


preporucio bih:
Code:

e.CellStyle.BackColor = Color.Red;

 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
219.138.61.*

Sajt: www.mika.rs


+6 Profil

icon Re: datetime problem u evidenciji placanja06.02.2009. u 15:18 - pre 184 meseci
Citat:

preporucio bih:
Code:

e.CellStyle.BackColor = Color.Red;


Da, definitivno ! Moja greska pri kopiranju. Takodje, sada vidim, uslovi za proveru perioda su takodje pogresni, no dobro, pojenta je tu
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

mayana
Zrenjanin

Član broj: 176040
Poruke: 82
77.46.176.*



Profil

icon Re: datetime problem u evidenciji placanja09.02.2009. u 07:05 - pre 184 meseci
e, dragi moji, ovde niko od "senior programera" nema pojma o c#, svi jos drljaju onaj stari fox... samo otaljavam pripravnicki jer u mom divnom Zrenjaninu nema teorije da te neko primi kao programera normalnim putem. no, hvala u svakom slucaju, divni ste!
... ovde ima nesto sto se nikako ne slaze... ;)
 
Odgovor na temu

[es] :: .NET :: datetime problem u evidenciji placanja

[ Pregleda: 3124 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.