d2jsp
Log InRegister
d2jsp Forums > Off-Topic > International > Svenska > Java Programmering
12Next
Add Reply New Topic New Poll
Member
Posts: 5,913
Joined: May 6 2009
Gold: 0.00
Feb 1 2015 06:00am
ngn som e duktig?

Försöker göra ett program där man skriver in år/månader/dagar och om man skriver in 2 på månad ska det max vara 28 dagar och om man går +1 dag så ska det bli förste mars osv...

Jag har gjort lite i ett switch statement än så länge men vettifan om det fungerar eftersom jag faktiskt sätter days = 28 osv... se nedan

Code
public void setDate( int theYear, int theMonth, int theDay)
{
Year = ( theYear >= 0000 && theYear <= 9999) ? theYear : 0;
Month =( theMonth >=1 && theMonth <= 12) ? theMonth : 0;
Day = ( theDay >=1 && theDay <= 31) ? theDay : 0;

switch(Month)
{
case 1: case 3: case 5: case 7: case 8: case 10:
case 12:
Day = 31;
break;
case 4: case 6: case 9: case 11:
Day = 30;
break;
case 2:
Day = 28;
}
}


Jag skulle vilja göra en if statement istället för switch men vet inte riktigt hur jag ska göra det..... :bonk:

Typ såhär??

Code
if ( (Month == 1 || Month == 3 || Month == 5 || Month == 7 || Month == 8 || Month == 10 || Month == 12) && Day >31 && Day <=0)
else ((Month == 4 || Month == 6 || Month == 9 || Month == 11) && Day >30 && Day <=0)
if ((Month == 2) && Day > 28 && Days <=0)


This post was edited by bomben on Feb 1 2015 06:14am
Member
Posts: 16,327
Joined: Apr 18 2009
Gold: 259.62
Feb 1 2015 06:25am
jag skulle lägga datan i ett json objekt och sen itterera igenom med en loop
fattar inte mkt av din if else pasta xD
Member
Posts: 107,673
Joined: Jan 20 2007
Gold: 2,443.00
Feb 1 2015 06:28am
Fy fan vad jag inte saknar IT.
Member
Posts: 16,327
Joined: Apr 18 2009
Gold: 259.62
Feb 1 2015 06:32am
Quote (umade @ 1 Feb 2015 14:28)
Fy fan vad jag inte saknar IT.


kul när man jobbar får göra riktig skit och inte bara göra tråkiga skoluppgifter
Member
Posts: 5,913
Joined: May 6 2009
Gold: 0.00
Feb 1 2015 06:38am
Quote (Jewhannes @ Feb 1 2015 01:25pm)
jag skulle lägga datan i ett json objekt och sen itterera igenom med en loop
fattar inte mkt av din if else pasta xD


Jag tänker lite såhär...

Första delen säger vad Year/Month/Day kan bli, dvs år allt mellan år 0 till 9999 pga 4 siffror max..
Månader allt mellan 1-12
Dag allt mellan 1-31

Men alla månader har ju inte 31 dagar! Och därför har jag en if sats som säger om månaderna är tex 2 så har den månaden 1-28 dagar..

Jo jag gör lägga till ngt som lägger till 1+ på månad om man går 1+ dag vid 28 dagar på feb... men problemet är att jag inte vet hur jag ska göra XD...
Det är andra veckan i kursen så är rätt grön

Quote (umade @ Feb 1 2015 01:39pm)
Vart fjärde år är andra månaden 29, glöm inte!


Det kunde vi bortse i den här laborationen..

This post was edited by bomben on Feb 1 2015 06:41am
Member
Posts: 107,673
Joined: Jan 20 2007
Gold: 2,443.00
Feb 1 2015 06:39am
Vart fjärde år är andra månaden 29, glöm inte!
Member
Posts: 6,742
Joined: Oct 31 2010
Gold: 7,480.00
Feb 1 2015 06:57am
Quote (umade @ 1 Feb 2015 13:39)
Vart fjärde år är andra månaden 29, glöm inte!


Bortsett från sekelskiften som inte är jämnt delbara med 400.

This post was edited by Giraff on Feb 1 2015 06:58am
Member
Posts: 5,913
Joined: May 6 2009
Gold: 0.00
Feb 1 2015 07:23am
Code
public void setDate( int theYear, int theMonth, int theDay)
{
Year = ( theYear >= 0000 && theYear <= 9999) ? theYear : 0;
Month =( theMonth >=1 && theMonth <= 12) ? theMonth : 0;
Day = ( theDay >=1 && theDay <= 31) ? theDay : 0;

if ((Month == 1 || Month == 3 || Month == 5 || Month == 7 || Month == 8 || Month == 10 || Month 12) && Day >32)
{
Day - 31 = Day;
Month + 1 = Month;
}
else if (Month == 4 || Month == 6 || Month == 9 || Month == 11) && Day >31)
{
Day - 30 = Day;
Month + 1 = Month;
}
else if (Month == 2 && Day > 29)
{
Day - 28 = Day;
Month + 1 = Month;
}
if (Month > 12)
{
Year + 1 = Year;
}
}


Något i den där stilen bör fungera bättre? Föresten.. hur testkör man en class fil? Går det?
Member
Posts: 16,327
Joined: Apr 18 2009
Gold: 259.62
Feb 1 2015 08:59am
Quote (bomben @ 1 Feb 2015 14:38)
Jag tänker lite såhär...

Första delen säger vad Year/Month/Day kan bli, dvs år allt mellan år 0 till 9999 pga 4 siffror max..
Månader allt mellan 1-12
Dag allt mellan 1-31

Men alla månader har ju inte 31 dagar! Och därför har jag en if sats som säger om månaderna är tex 2 så har den månaden 1-28 dagar..

Jo jag gör lägga till ngt som lägger till 1+ på månad om man går 1+ dag vid 28 dagar på feb... men problemet är att jag inte vet hur jag ska göra XD...
Det är andra veckan i kursen så är rätt grön



Det kunde vi bortse i den här laborationen..


ja alltså jag fattar inte vad du försöker göra
Member
Posts: 19,095
Joined: Aug 15 2007
Gold: 12.00
Feb 1 2015 12:59pm
Quote (Giraff @ 1 Feb 2015 13:57)
Bortsett från sekelskiften som inte är jämnt delbara med 400.


ska man börja bry sig om allt sånt så hamnar man i en dödsspiral som slutar med självmord i ett sunkigt hotelrum.

https://www.youtube.com/watch?v=-5wpm-gesOY


Jag gillar arrays av olika sorter. Som jewhannes va inne på så är jsonobject rätt lätthanterliga.
En lite småful lösning är att du gör en array för varje "typ" av månad du har, dvs varje månad som har 31 dagar får en array, varje månad som har 30 får en osv.
Sen får du göra en if sats där du kollar om den månaden du valt finns i någon av arrayerna och då utföra rätt sats.

Föredrar det framför trehundra || i dina if satser.

För att få den att byta månad är det ju bara ha en if sats där du kollar om Month == 2 och Day > 28 (eller 29?) och då sätta Month = 3 and Day = 1.




Go Back To Svenska Topic List
12Next
Add Reply New Topic New Poll