Vad är det du försöker göra? Varför använder du inte java.util.Calendar?
För att ge lite tips, om det är så att ni inte _får_ använda er av Calendar:
Lagra antalet dagar för månaderna i en array;
int[] months = new int[12];
months[0] = 31; // Januari
months[1] = 28; // Februari
months[2] = 31; // Mars
...
För att sedan kolla om februari är förlängd (skottår), så finns det ett knep. Det är skottår vart fjärde år, men vart hundrade år är det inte det. Så använd modulus för att se om det är skottår.
int year = 2008;
if (year % 4 == 0 && year % 100 != 0)
// Skottår!
Översättning i klartext:
Året är 2008
Om 2008 delat med 4 inte lämnar rest och 2008 delat med 100 lämnar rest
// Så är det skottår!
jag försöker göra en instansmetod till följande program:
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class Z
{
public static void main(String[] arg)
{
Klocka v = new Klocka();
}
}
class Klocka extends JFrame implements ActionListener
{
private Cal tid = new Cal();
private JLabel j;
public Klocka()
{
javax.swing.Timer time = new javax.swing.Timer(1000, this);
time.start();
Calendar kalender = Calendar.getInstance(TimeZone.getTimeZone("ECT"));
tid.sätt(kalender.get(Calendar.YEAR),
kalender.get(Calendar.MONTH),
kalender.get(Calendar.DAY_OF_MONTH),
kalender.get(Calendar.HOUR_OF_DAY),
kalender.get(Calendar.MINUTE),
kalender.get(Calendar.SECOND));
j = new JLabel(tid.toString(), JLabel.CENTER);
Color rosa = new Color(255, 105, 180);
getContentPane().add(j);
j.setOpaque(true);
j.setBackground(Color.black);
j.setForeground(rosa);
j.setFont(new Font("Forte", Font.BOLD, 36));
setSize(400, 75);
setLocation(200, 200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
tid.räknare();
j.setText(tid.toString());
}}
min metod ser ut på följande vis.
public class Cal
{
private int å, m, d, t, mi, s;
public Cal() {}
public Cal (int år, int mån, int dag, int tim, int min, int sek)
{
sätt(år, mån, dag, tim, min, sek);
}
public void sätt (int år, int mån, int dag, int tim, int min, int sek)
{
if (år>=0 && mån>=0 && mån<=12 && dag>=0 && dag<31 && tim>=0 && tim<24 &&
min>=0 && min<60 && sek>=0 && sek<60)
{
å=år; m=mån; d=dag; t=tim; mi=min; s=sek;
}
else
System.out.println("Error");
}
public String toString()
{
String form = å + "-" + m + "-" + d + " " + t + ":" + mi + ":" + s;
return form;
}
public void räknare()
{
s = s + 1;
if (s==60)
{
s = 0;
mi = mi + 1;
if (mi==60)
{
mi = 0;
t = t + 1;
}
if (t==24)
{
t = 0;
d = d + 1;
}
if (d==31)
{
d = 0;
m = m + 1;
}
if (m==12)
{
m = 0;
å = å + 1;
}
if (å==2040)
System.out.println("I år fyller jag 50!!");
}
}
public void räknare(int sekunder){
while (sekunder>0)
{
räknare();
sekunder = sekunder -1;
}
}
}
men ser det ut så här så kommer programmet visa fel på månaderna i o m att nu berättar det att varje månad har 31 dagar.
hjälp...snälla...
- Igår Corsair Platform 6: För dig som inte nöjer dig med Ikea-skrivbord 9
- Igår Rykte: Switch 2 släpps i höst – OLED-variant dröjer 27
- Igår Iphones marknadsandel faller i USA 42
- 25 / 4 Airtec Pro Type1 – batteridrivet alternativ till tryckluft på burk 79
- 25 / 4 Nu stiger hårddiskpriserna med uppemot 10 procent 21
- Rykte: Switch 2 släpps i höst – OLED-variant dröjer27
- Premiär! Månadens Drop på SweClockers63
- Corsair Platform 6: För dig som inte nöjer dig med Ikea-skrivbord9
- Tips på grafikkort15
- Speldator runt 12k - Funkar detta?1
- Quiz: Vad kan du om Inet?73
- någon som använder Xpenology ? (NAS)3
- Köpråd för ny gaming dator, runt 25k11
- Elbilar - Tråden för intresserade23189
- Vilket VR-headset ska jag köpa?881
- Säljes ASUS ROG STRIX GeForce GTX 1080 Ti 11GB Gaming OC
- Säljes Gamingdator, 7800X3D, RTX 4080 Super
- Säljes Samsung Galaxy Tab S9 Wi-Fi
- Köpes 24 eller 27 tum minst 144hz
- Säljes MSI GeForce GTX 1070 GAMING X 8G
- Säljes Garderobsrensning, möss och keycaps
- Säljes Acer 4K 144Hz XB273KGP - Gaming Prylar - Aio
- Säljes Spelkoder säljes
- Köpes NUC - gärna Intel 8th gen (Iris) men allt intressant
- Skänkes i386 Laptop Skänkes!
- Ny caps lock-symbol i Windows förbryllar HP-användare10
- Corsair Platform 6: För dig som inte nöjer dig med Ikea-skrivbord9
- Rykte: Switch 2 släpps i höst – OLED-variant dröjer27
- NetonNet varnar om läckta kunduppgifter18
- Premiär på SweClockers! Månadens drop med gamingskärm hos Elgiganten63
- IT-bolag: Teknikstrul är största tidsboven idag38
- Därför blockerar Windows 11 24H2 Start‑menyhack39
- Iphones marknadsandel faller i USA42
- Konsumentverket granskar tio nätbutiker som lurat kunder18
- Airtec Pro Type1 – batteridrivet alternativ till tryckluft på burk79
Externa nyheter
Spelnyheter från FZ
- Xbox-försäljningen dök 31 % årets första kvartal igår
- PS Plus-ägare får vänta på Fallout 4-uppdateringen igår
- Spelhelgen knackar på – den kommer med spel! igår
- Switch 2-rykten – Kan släppas 2024, kontrollerna får magnetfästen igår
- People Can Fly har skrotat sitt "banbrytande" action-RPG Project Dagger igår