Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-10-2005, 12:32   #1
GiulioCesare
Senior Member
 
Iscritto dal: Apr 2004
Messaggi: 364
[Java] Calcolare differenza di giorni

Salve ragazzi, sto cercando di fare un metodo che prende come parametro una data e calcola quanti giorni di differenza ci sono tra questa data è quella di oggi, purtroppo il mio metodo da dei problemi quando la data inserita ha un mese diverso da quello di oggi, per esempio calcolando che oggi è il 25 ottobre, se dico che la data a cui fare il calcolo è il primo novembre, il metodo mi dice che ci sono 6 giorni di differenza, invece di 7, ho paura che forse ci siamo problemi con i mesi che sono di 31 giorni, comunque posto il mio metodo con la speranza che qualcuno mi aiuti, se avete altre soluzioni mi fareste un grande favore, grazie

Codice:
public void convert(int annoDataFin, int meseDataFin, int giornoDataFin)
{
	Calendar calendario= new GregorianCalendar();
	int annodata = calendario.get(Calendar.YEAR);
	int mesedata = calendario.get(Calendar.MONTH)+1;
	int giornodata = calendario.get(Calendar.DAY_OF_MONTH);

	Calendar today = new GregorianCalendar(annodata, mesedata, giornodata);
	Calendar dataFin = new GregorianCalendar(annoDataFin, meseDataFin, giornoDataFin);
             long difInDays = ((today.getTime().getTime()-dataFin.getTime().getTime())/(1000*60*60*24));
	System.out.println("La differenza e' " +difInDays);
	}
GiulioCesare è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2005, 20:05   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
mmmmmmmm...
ho provato in questo momento a scrivere una classettina di utilità (sfruttando il TDD anke x questa cazzatina tanto x imparare qualkosa... ) a me non da problemi.... forse il tuo problema è dato dal fatto ke effettui una divisione intera anzikè in double, perchè se non sbaglio java crea alcuni casini restituendoti il risultato arrotondato.....
cmq dai un okkiatina al mio codice....
così dovrebbe funzionare almeno nei poki casi in cui l'ho provato....
Codice:
package calendar;

import java.util.Calendar;

public final class CalendarUtility {
	private final static double SECONDS = 1000;
	private final static double MINUTES = 60;
	private final static double HOURS = 60;
	private final static double DAYS = 24;
	
	
	private CalendarUtility() {	}
	
	
	public static long daysBeetween(Calendar startDate, Calendar endDate){
		long startTime = startDate.getTimeInMillis();
		long endTime = endDate.getTimeInMillis();
		double msecDiff = endTime - startTime;
		long daysDiff = Math.round(msecDiff / SECONDS / MINUTES / HOURS / DAYS);
		daysDiff = Math.abs(daysDiff);
		return daysDiff;
	}
}
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2005, 14:23   #3
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Innanzitutto:
Codice:
public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth)

    Constructs a GregorianCalendar with the given date set in the default time 
zone with the default locale.

    Parameters:
        year - the value used to set the YEAR calendar field in the calendar.
        month - the value used to set the MONTH calendar field in the calendar. 
Month value is 0-based. e.g., 0 for January.
        dayOfMonth - the value used to set the DAY_OF_MONTH calendar field in
 the calendar.
Quindi:
Codice:
import java.util.*;
import static java.util.Calendar.*;


public class CalendarTest {
  public static void main(String[] args) {
    Calendar now = Calendar.getInstance();
    Calendar when = new GregorianCalendar(2005, 0, 1); // '01/01/2005'
    int days = now.get(DAY_OF_YEAR) - when.get(DAY_OF_YEAR);
    System.out.println(days);
  }
}
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2005, 15:51   #4
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
ehm...
così ti ritorna il giorno dell'anno...
x anni diversi come fai???
col mio metodo facevo la trasformazione in millisecondi per superare appunto questa limitazione....
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2005, 16:22   #5
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da ^TiGeRShArK^
ehm...
così ti ritorna il giorno dell'anno...
x anni diversi come fai???
col mio metodo facevo la trasformazione in millisecondi per superare appunto questa limitazione....
Che fesso che sono: dal testo del post avevo capito che bisognava trovare la differenza di giorni solo a livello di mese+giorno e non fra le date in assoluto. Per fare questo la soluzione dei millisecondi sembra quella ovvia, ma non ne sarei tanto sicuro. Se hai voglia (io non ne ho ) prova a vedere se questo tizio ha ragione: Paul Hill
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Avio si prepara ai test del Dimostratore...
Space Pioneer ha annunciato le cause del...
Anthropic avrebbe nuovi antibiotici cont...
Scoperto un 'moltiplicatore nascosto' ne...
DREO: a IFA 2026 4 novità fra cui...
Slackbot genera dashboard e microsite de...
Idrogeno, nuova cella a combustibile rag...
Con la NASA fuori dai giochi, l'ESA risc...
Una falla di ChatGPT permette di estrapo...
Piano clima, 1,34 miliardi per il bonus ...
Porsche esce definitvamente da Bugatti R...
NVIDIA App aggiunge una delle funzioni p...
Come sarebbe il mondo se la luce viaggia...
Titanio, ceramica e zaffiro per HUAWEI W...
Taglio delle accise sul gasolio prorogat...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v