Forum » Programiranje » logika za IsNew
logika za IsNew
pizdarija1 ::
Zdravo, rabil bi malo pomoči pri tej logiki.
IsNew sporoči če lahko vnese nov datum, ta se vnese vsak dan po hour parametru glede na server time v primeru da za ta dan še ni vnosa.
parametri za IsNew so: zadnji vnos v bazo, trenutni čas na serverju ta se skoz spreminja, ura po kateri je potreben nov vnos
Example:
V prvem primeru je zadnji vnos v db 2015-1-1 13:00:00 mora biti po 2015-1-1 12:00:00 server time je 2015-1-1 14:00:00. Torej je danes že vneseno vrne false.
Vnos se lahko zgodi med 24h od zadnjega vnosa med 2015-1-1 12:00:00 in 2015-1-2 12:00:00.
Trenutka koda, ki ne deluje + testi v komentarjih so rezultati ki bi morali biti.
IsNew sporoči če lahko vnese nov datum, ta se vnese vsak dan po hour parametru glede na server time v primeru da za ta dan še ni vnosa.
parametri za IsNew so: zadnji vnos v bazo, trenutni čas na serverju ta se skoz spreminja, ura po kateri je potreben nov vnos
Example:
V prvem primeru je zadnji vnos v db 2015-1-1 13:00:00 mora biti po 2015-1-1 12:00:00 server time je 2015-1-1 14:00:00. Torej je danes že vneseno vrne false.
Vnos se lahko zgodi med 24h od zadnjega vnosa med 2015-1-1 12:00:00 in 2015-1-2 12:00:00.
Trenutka koda, ki ne deluje + testi v komentarjih so rezultati ki bi morali biti.
public bool IsNew(string db, string server, string hour)
{
string today = db.Split(' ')[0];
DateTime dateTimeDb = DateTime.Parse(db);
DateTime dateTimeServer = DateTime.Parse(server);
DateTime dateTimeTarget = DateTime.Parse(string.Format("{0} {1}", today, hour));
dateTimeTarget = dateTimeTarget.AddDays(1);
TimeSpan diffServer = dateTimeTarget - dateTimeServer;
TimeSpan diffDb = dateTimeTarget - dateTimeDb;
bool isNewTime = (dateTimeTarget < dateTimeServer);
//bool isNewDb = (dateTimeTodayAndHour > dateTimeDb);
bool isNew = isNewTime;// && isNewDb;
return isNew;
}
//testi
bool a = IsNew("2015-1-1 13:00:00", "2015-1-1 14:00:00", "12:00:00pm");//FAIL
bool b = IsNew("2015-1-1 13:00:00", "2015-1-2 12:05:00", "12:00:00pm");//PASS
bool c = IsNew("2015-1-2 11:00:00", "2015-1-2 12:05:00", "12:00:00pm");//PASS
bool d = IsNew("2015-10-20 12:00:00", "2015-10-22 01:00:00", "11:00:00am");//PASS
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | [C#] Evidenca osebOddelek: Programiranje | 1254 (939) | DaMachk |
| » | [C#] današnji datum in rojsni datumOddelek: Programiranje | 5235 (4722) | vojko20 |
| » | C# delo z datumiOddelek: Programiranje | 1222 (1123) | MaCoFaCo |
| » | c# cudne reci pri merjenju hitrosti simple for loopaOddelek: Programiranje | 1346 (1284) | Senitel |
| » | [C#] DateTime v bazoOddelek: Programiranje | 1509 (1396) | teac |