Hirdetés
- Samsung Galaxy S25 - végre van kicsi!
- Bemutatkozott a Poco X7 és X7 Pro
- iPhone topik
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Fele annyit ér az iPhone Air, mint amennyibe pár hete került
- Samsung Galaxy A17 5G – megint 16
- Okosóra és okoskiegészítő topik
- Samsung Galaxy S24 - nos, Exynos
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Yettel topik
Új hozzászólás Aktív témák
-
joysefke
veterán
Hali!
nem teljesen értem, mit szeretnél csinálni, vagy a kód amit beszúrtál mit csinál, de a következő észrevételeim lennének:

1,
if (holnap+1=1)ide szerintem == operátor kéne, nem értékadás. Egyáltalán miért nem kapsz itt hibát, hiszen az értékadás bal oldalán nem változó áll
2,
Az if( ) feltételeid egymást mind kölcsönösen kizárják, tehát nem fordulhat elő, hogy egyszerre kettő if-törzsbe belépsz.Sokkal átláthatóbb lenne a kód, ha
if(A) {..}
else if (B) {...}
else if (C) {...}
else {}konstrukciókat használnál.
Sőt, ilyen helyzetben én inkább egyből switch statementet használnék, ami a
holnapváltozódtól függően csinálna valamit (adna értéket a listaelemeidnek )3,
Ha ki akarod kerülni ezt a "hét napja" enum-aritmetikát /ami vonzza a hibákat mint a mágnes/, akkor az első dolog ami nekem eszembe jut (persze nyilván vannak más, akár jobb megoldások is) készíteni statikus extension methodokat, amelyek kényelmessé teszik az életedet:
Pld:
public static class DayHelper
{
public static int DaysToMonday()
{
var today = DateTime.Today.DayOfWeek;
var offset = DayOfWeek.Monday - today;
return offset >= 0 ? offset : 7 + offset;
}
public static int DaysToSunday()
{
var today = DateTime.Today.DayOfWeek;
var offset = DayOfWeek.Sunday - today;
return offset >= 0 ? offset : 7 + offset;
}
public static int DaysToMonday(this DateTime date)
{
var day = date.DayOfWeek;
var offset = DayOfWeek.Monday - day;
return offset >= 0 ? offset : 7 + offset;
}
Stb stb stb
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(DayHelper.DaysToMonday());
Console.WriteLine(DayHelper.DaysToSunday());
Console.WriteLine(new DateTime(2019, 4, 20).DaysToMonday());
Console.WriteLine("Hello World!");
}
}Innentől kezdve, ha hívsz a kódodban egy ilyet hogy:
DayHelper.DaysToMonday()
akkor visszaadja a hétfőig hátralevő napok számát. Ezt nyilván meg tudod csinálni a hét összes napjára.Ha pedig van egy DateTime típusú változód, akkor azon meghívva a DaysToMonday()-t visszaadja az adott dátumtól a hétfőig visszalevő napok számát. Pld:
Console.WriteLine(new DateTime(2019, 4, 20).DaysToMonday());Visszaadja hogy 20-i dátumtól kezdve mennyit kell aludni hétfőig.
-
vlevi
nagyúr
Ez így biztosan nem jó. Ha az utolsó if, vagyis a holnap+3=1 nem teljesül, mindenképp üres lesz a két elem.
Vagy az egészet egymasba ágyazott if else szerkezetekbe rakod, vagy a switchcase ilyen esetben jobb.
Vagy előre feltöltést egy constans tömböt az eredményekkel, és csak abból választasz.
Arra is vigyázz, hogy a dayofweek angol területén vasarnap az 1, Magyarországon a hétfő. Itt is érdemes használni a culture paramétert.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- GYÖNYÖRŰ iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA -Kártyafüggetlen, MS3893
- EK Quantum Kinetic D-RGB D5 Pump Viztartály - pumpa kombó! 360MM
- LG 65C4 - 65" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - 1000 Nits
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3853
- Samsung Galaxy S23 FE / 8/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest




