Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Java] calcolo ultima domenica mese

    ciao a tutti, qualcuno sa come posso calcolare l'ultima domenica(giorno numerico) del mese (ad esempio il mese di ottobre)?

    io mi sono fermata a calcolare il giorno della settimana della data odierna e non so come continuare...


    SimpleDateFormat dt = new SimpleDateFormat("E");
    Calendar cal = Calendar.getInstance(Locale.ITALY);
    java.util.Date date = cal.getTime();
    String result=dt.format(date);
    System.out.println (result);





    grazie

    Daria
    Realizzazione siti web
    ____________________________
    how terrible thing is knowledge when it brings no profit to the wise...

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Così, calcola l'ultima domenica del mese corrente:

    [CODE]
    codice:
    import java.util.*;
    
    class Ora{
      public static void main(String[] args)
      {
    
        GregorianCalendar d = new GregorianCalendar();
        d.set(Calendar.DAY_OF_MONTH, 22);
        int giorno=0;
        int month = d.get(Calendar.MONTH);
        while(d.get(Calendar.MONTH) == month){
    		if(d.get(Calendar.DAY_OF_WEEK) == 1)
    		  giorno = d.get(Calendar.DAY_OF_MONTH);
    		d.add(Calendar.DAY_OF_MONTH, 1);
        }
    
        System.out.println(giorno);
      }
    }

  3. #3
    ciao

    intanto grazie per la risposta

    a me in realtà servivano espressamente le ultime domeniche di ottobre e marzo (cambiamento ora solare-legale)

    io ho fatto così (vedi giu), magari poi si possono combinare i 2 codici per ottimizzarli, anche per i futuri bisognosi

    ciao

    SimpleDateFormat sdt = new SimpleDateFormat("E");
    Date date=null;
    SimpleDateFormat sdt1 = new SimpleDateFormat("yyyy-MM-dd");
    String dateDomOttobre = "";
    String dateDomMarzo = "";
    try {
    for (int i = 31; i>24; i--){

    date = sdt1.parse("2005-03-"+Integer.toString(i));
    System.out.println ("2005-03-"+Integer.toString(i)) ;
    String result=sdt.format(date);
    if(result.equals("dom"))
    {
    result+=" *";
    dateDomMarzo = "2005-03-"+Integer.toString(i);
    }
    System.out.println (result);
    }
    }
    catch (Exception ex) {
    System.out.println (ex);
    }
    System.out.println ("");
    System.out.println ("");
    System.out.println ("");
    System.out.println ("");
    System.out.println ("");
    try {
    for (int i = 31; i>24; i--){

    date = sdt1.parse("2005-10-"+Integer.toString(i));
    System.out.println ("2005-10-"+Integer.toString(i)) ;
    String result=sdt.format(date);
    if(result.equals("dom"))
    {
    result+=" *";
    dateDomOttobre = "2005-10-"+Integer.toString(i);
    }
    System.out.println (result);
    }
    }
    catch (Exception ex) {
    System.out.println (ex);
    }

    System.out.println ("");
    System.out.println ("");
    System.out.println ("");
    System.out.println ("");
    System.out.println ("");
    System.out.println (dateDomOttobre);
    System.out.println (dateDomMarzo);
    Realizzazione siti web
    ____________________________
    how terrible thing is knowledge when it brings no profit to the wise...

  4. #4
    ecco il codice ottimizzato per il mio utilizzo. Ringrazio nuovamente Lucked che mi ha risparmiato un bel pò di righe e fatica

    ciao!

    GregorianCalendar d = new GregorianCalendar();
    d.set(Calendar.DAY_OF_MONTH, 22);
    int giorno=0;
    d.set(Calendar.MONTH, Calendar.MARCH);
    int month =d.get(Calendar.MONTH);

    while(d.get(Calendar.MONTH) == month){
    if(d.get(Calendar.DAY_OF_WEEK) == 1)
    giorno = d.get(Calendar.DAY_OF_MONTH);
    d.add(Calendar.DAY_OF_MONTH, 1);
    }

    System.out.println(giorno);

    giorno=0;
    d.set(Calendar.MONTH, Calendar.OCTOBER);
    month =d.get(Calendar.MONTH);

    while(d.get(Calendar.MONTH) == month){
    if(d.get(Calendar.DAY_OF_WEEK) == 1)
    giorno = d.get(Calendar.DAY_OF_MONTH);
    d.add(Calendar.DAY_OF_MONTH, 1);
    }

    System.out.println(giorno);
    Realizzazione siti web
    ____________________________
    how terrible thing is knowledge when it brings no profit to the wise...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    di nulla

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    cosi è ottimizzato:

    codice:
    import java.util.*;
    
    class Ora{
      public static void main(String[] args)
      {
       giornoMese(Calendar.MARCH);
       giornoMese(Calendar.OCTOBER);
      }
    
     static void giornoMese(int mese){
        GregorianCalendar d = new GregorianCalendar();
        d.set(Calendar.DAY_OF_MONTH, 22);
        d.set(Calendar.MONTH, mese);
        int giorno=0;
        int month = d.get(Calendar.MONTH);
        while(d.get(Calendar.MONTH) == month){
    		if(d.get(Calendar.DAY_OF_WEEK) == 1)
    		  giorno = d.get(Calendar.DAY_OF_MONTH);
    		d.add(Calendar.DAY_OF_MONTH, 1);
        }
        System.out.println(giorno);
     }
    }

  7. #7
    grandissimo

    un salutone
    Realizzazione siti web
    ____________________________
    how terrible thing is knowledge when it brings no profit to the wise...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.