menü    videók      
Mit tanulnál?
Keresés:
videót kérek belépés regisztráció
 Termék tesztek, hírek, bemutatók  ✦  mobilok, okosórák, médialejátszók, stb.  ✦  kattints ide!
Dátum és idő kezelési tippek (2018.10.27)
Bejegyzések a témában:   c#   programozas  
Hozzászólások

Dátummal és idővel viszonylag gyakran kell dolgozni a desktop programokban (is), így a C# programozás során is. A C# ehhez egész jó eszközöket ad, de azért nem minden egyértelmű elsőre. Ezért most megnézünk pár hasznos tippet.

A hét első napjának dátuma

using System.Globalization;

//tetszőleges dátumhoz kapcsolódóan megmondja, hogy mi volt a hét első napjának dátuma public static DateTime het_elso_napja(DateTime date)
{
DayOfWeek het_napja = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
int kulonbseg = het_napja - date.DayOfWeek;
DateTime het_elso_napja = date.AddDays(kulonbseg);
return het_elso_napja;
}

//példa a használatra -- DateTime.Now vagyis az aktuális naphoz képest a hét első napja, amit akár át is alakíthatunk tetszőleges dátum stringgé string datum = het_elso_napja(DateTime.Now).ToString("yyyy.MM.dd");

A hét melyik vagy hányadik napja ez a dátum?

//a hét napjának neve
DateTime datum = new DateTime(2018, 10, 28); 
//az adott dátum - év, hónap, nap
var het_napja_nevvel = datum.DayOfWeek; //a hét napja számmal (hányadik nap a héten?)
//FIGYELEM: a vasárnap alapértelmezésben a 0. sorszámot kapja, nem a 7-et! var het_napja_szammal = datum.DayOfWeek.ToString("d");

A mai nap megszerzése string-ként

string ma = DateTime.Now.ToString("yyyy-MM-dd");

//tetszőleges dátum formátum megadható a ToString-nek, tehát pl.:
ma = DateTime.Now.ToString("yyyy.MM.dd");


//yyyy év, MM hónap, dd napEredménye a mai nap dátuma string-ként: 2018.10.27

DateTimePicker egyedi dátum formátum

dtp_end.Format = DateTimePickerFormat.Custom; //egyedi formátum engedélyezése
dtp_end.CustomFormat = "yyyy.MM.dd. hh:mm:ss"; //formátum beállítása időbélyeggel - év:hónap:nap óra:perc:másodperc - nem kötelező mind

Dátumok kivonása egymásból

string kezdo_nap = dtp_kezdo.Value.ToString("yyyy-MM-dd"); //a kezdő dátum egy string, ami most DateTimePicker-ből származik
string zaro_nap = dtp_zaro.Value.ToString("yyyy-MM-dd"); //a vég dátum egy string, ami most DateTimePicker-ből származik

//ha a dátum nem dátum típus, akkor parse-olni kell dátumként -- ha az, akkor a parse elhagyható
//TimeSpan típusban tárolódik
TimeSpan kulonbseg = DateTime.Parse(zaro_nap) - DateTime.Parse(kezdo_nap);

 //napok, percek, stb kinyerése
double napok = kulonbseg.TotalDays;
double percek = kulonbseg.TotalMinutes;

//https://msdn.microsoft.com/en-us/library/system.timespan(v=vs.110).aspx

MessageBox.Show(percek.ToString());

Hónap utolsó napja

var utolso_nap = DateTime.DaysInMonth(2015, 11); //melyik év, hónapról van szó?

//egy számot ad vissza, amely a hónap utolsó napja, tehát például 30, 31

Hozzáadás vagy kivonás egy dátumból

//többféle módon megoldható, példa DateTimePicker-rel való használathoz

//egy nap hozzáadása a mai naphoz
datetimepicker1.Value = DateTime.Today.AddDays(1);

//egy nap kivonása a mai napból
datetimepicker1.Value = DateTime.Today.AddDays(-1);

/*az AddDays-szel teljesen megegyező módon használható az
AddHours
AddMilliseconds
AddMinutes
AddMonths
AddSeconds
AddYears

De használható a pontos idővel is:*/

datetimepicker1.Value = DateTime.Now.AddDays(1);
datetimepicker1.Value = DateTime.Now.AddMinutes(10);
datetimepicker1.Value = DateTime.Now.AddMinutes(-10);