Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102

    [C]ordinare in base alle date!

    Ciao ragazzi...
    volevo kiedervi un consiglio... mi chiedevo come posso fare ad ordinare una lista di nomi in base alla data di nascita se la data è contenuta in un

    codice:
    char data[7]
    che contiene una stringa del tipo.... "12feb85" .

    .....se la data fosse contenuta in una
    codice:
    struct data{
          int giorno;
          char mese[3];
          int anno;
    }
    credo di riuscirci seza problemi.... magari usando anche una "enum"
    ma data come una stringa di quel tipo..... francamente al momento nn ne ho idea!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il problema non e' quindi il codice del sort, perche' sapresti come scriverlo ... giusto?

    L'unica cosa che devi fare e' scrivere una funzione che, date due date scritte in quel formato, riesca a determinare se sono uguali o qual e' quella che viene prima o dopo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    esattamente si..!!!
    il problema nn è l'algoritmo di ordinamento.....
    ma come ottenere i dati su cui lavorare...
    ... scusate...titolo poco chiaro!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Okay, allora comincia a scrivere una funzione che faccia il confronto che ti ho detto ...

    Avra' due parametri di tipo puntatore a stringa e restituira' un intero per indicare la relazione tra le due date ...

    Prima di iniziare a scriverla, devi avere bene presente quali sono le possibilita' che si possono presentare ... ovvero la data

    "1feb85"

    si presentera' in quel modo oppure anche

    "01feb85" oppure "01feb1985"

    E per le date a partire dal 2000?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    procediamo:
    allora.... la stringa passatami in input è esattamente della forma ke ti ho indicato...
    "01feb89" ovvero "ggmmmaa" ...
    per quanto riguarda gli anni successivi al 2000... uguale, quindi (1 gennaio 1900) = (1 gennaio 2000) !!! so ke è formulato male... ma nn dipende da me... è esplicitamente richiesto così!
    sulla strina inoltre nn c'è nemmeno alcun controllo precedente, quindi devo dare per scontato ke possa anche ricevere "98thu#s" !!!!

    cmq... ipotizziamo il caso OTTIMO.... ricevo una stringa scritta correttamente!
    per fare il mio ordinamento ho bisogno di poter riempire una struct come quella ke ho scritto sopra!
    ...... continuiamo.....

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Pierock
    per quanto riguarda gli anni successivi al 2000... uguale, quindi (1 gennaio 1900) = (1 gennaio 2000) !!!
    Beh ... se e' cosi' devi decidere quando troverai 01 nell'anno, se intendere 1901 o 2001 ... e dovrai deciderlo PRIMA di scrivere il codice ...

    ... quindi devo dare per scontato ke possa anche ricevere "98thu#s"
    Questo ovviamente, invalida qualsiasi ragionamento ...

    ipotizziamo il caso OTTIMO.... ricevo una stringa scritta correttamente!
    per fare il mio ordinamento ho bisogno di poter riempire una struct come quella ke ho scritto sopra!
    Esatto ... estrai i primi due caratteri della stringa e trasformali in un valore intero ... lo stesso farai con le ultime due cifre presenti alla fine della stringa, per l'anno ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    esatto...
    questi sono i passaggi ke nn so fare...

    ipotizzavo... prendo i primi 2 caratteri e li inserico in un intero giorno usando credo una "strncpy"..
    codice:
    char temp[3];
    int giorno;
    strncpy(temp, STRINGA, 2);
    giorno=int(temp);       //corretto?
    poi come faccio a prendere dal terzo al quinto carattere...... e dal sesto al settimo?
    aiutami un po' a buttare giu il codice......

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Considera che, se la stringa e'

    char s[] = "25feb92";

    il valore del giorno e' nei caratteri

    s[0] e s[1]
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    AAAAAA
    CAVOLO.... si si ... ke idiota! .... mi era sfuggito!
    ok ok... Tutto risolto allora eheh
    grazie milleoregon !!!!
    alla prossima..... e spero nn per una fesseria del genere!

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Ma comunque per il mese ti conviene usare un tipo enumerativo. Se ricorri a delle semplici stringhe come fai a confrontare le date in base al mese, nel caso che l'anno sia lo stesso? L'ordine lessicografico delle stringhe non corrisponde certamente (o comunque non per forza) a quello temporale dei mesi dell'anno...
    every day above ground is a good one

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 © 2025 vBulletin Solutions, Inc. All rights reserved.