import java.time.Year ;
class Articol {
private int anPublicare;
// Constructor implicit (folosește înlănțuirea constructorilor)
public Articol( ) {
this ( "Necunoscut" , "Fara titlu" , "General" , 0 ) ;
}
// Constructor cu parametri
this .autor = autor;
this .titlu = titlu;
this .jurnal = jurnal;
this .anPublicare = anPublicare;
}
// Constructor de copiere
public Articol( Articol altArticol) {
this ( altArticol.autor , altArticol.titlu , altArticol.jurnal , altArticol.anPublicare ) ;
}
// Getters
public String getAutor
( ) { return autor
; } public String getTitlu
( ) { return titlu
; } public String getJurnal
( ) { return jurnal
; } public int getAnPublicare( ) { return anPublicare; }
@Override
return String .
format ( "%s - \" %s\" , în %s (%d)" , autor, titlu, jurnal, anPublicare
) ; }
public int calculeazaVechime( ) {
int anulCurent = Year.now ( ) .getValue ( ) ; // Dinamic: va returna 2026
return anulCurent - anPublicare;
}
}
public class Main {
public static void main
( String [ ] args
) { // Organizăm datele într-un tablou pentru a putea itera prin ele
Articol[ ] colectie = {
new Articol( "Popescu Ana" , "IA in educatie" , "AI Journal" , 2022 ) ,
new Articol( "Ionescu Mihai" , "Algoritmi" , "CS Review" , 2019 ) ,
new Articol( "Georgescu Elena" , "Sisteme" , "IT Today" , 2024 )
} ;
Articol celMaiRecent = colectie[ 0 ] ;
System .
out .
println ( "Lista articolelor:" ) ; for ( Articol art : colectie) {
System .
out .
println ( "- " + art
) ;
// Determinăm cel mai recent articol în timpul parcurgerii
if ( art.getAnPublicare ( ) > celMaiRecent.getAnPublicare ( ) ) {
celMaiRecent = art;
}
}
System .
out .
println ( "\n --- Analiza ---" ) ; System .
out .
println ( "Articolul cel mai recent: " + celMaiRecent.
getTitlu ( ) ) ; System .
out .
println ( "Vechime: " + celMaiRecent.
calculeazaVechime ( ) + " an(i)." ) ; }
}
aW1wb3J0IGphdmEudGltZS5ZZWFyOwoKY2xhc3MgQXJ0aWNvbCB7CiAgICBwcml2YXRlIFN0cmluZyBhdXRvcjsKICAgIHByaXZhdGUgU3RyaW5nIHRpdGx1OwogICAgcHJpdmF0ZSBTdHJpbmcganVybmFsOwogICAgcHJpdmF0ZSBpbnQgYW5QdWJsaWNhcmU7CgogICAgLy8gQ29uc3RydWN0b3IgaW1wbGljaXQgKGZvbG9zZciZdGUgw65ubMSDbsibdWlyZWEgY29uc3RydWN0b3JpbG9yKQogICAgcHVibGljIEFydGljb2woKSB7CiAgICAgICAgdGhpcygiTmVjdW5vc2N1dCIsICJGYXJhIHRpdGx1IiwgIkdlbmVyYWwiLCAwKTsKICAgIH0KCiAgICAvLyBDb25zdHJ1Y3RvciBjdSBwYXJhbWV0cmkKICAgIHB1YmxpYyBBcnRpY29sKFN0cmluZyBhdXRvciwgU3RyaW5nIHRpdGx1LCBTdHJpbmcganVybmFsLCBpbnQgYW5QdWJsaWNhcmUpIHsKICAgICAgICB0aGlzLmF1dG9yID0gYXV0b3I7CiAgICAgICAgdGhpcy50aXRsdSA9IHRpdGx1OwogICAgICAgIHRoaXMuanVybmFsID0ganVybmFsOwogICAgICAgIHRoaXMuYW5QdWJsaWNhcmUgPSBhblB1YmxpY2FyZTsKICAgIH0KCiAgICAvLyBDb25zdHJ1Y3RvciBkZSBjb3BpZXJlCiAgICBwdWJsaWMgQXJ0aWNvbChBcnRpY29sIGFsdEFydGljb2wpIHsKICAgICAgICB0aGlzKGFsdEFydGljb2wuYXV0b3IsIGFsdEFydGljb2wudGl0bHUsIGFsdEFydGljb2wuanVybmFsLCBhbHRBcnRpY29sLmFuUHVibGljYXJlKTsKICAgIH0KCiAgICAvLyBHZXR0ZXJzCiAgICBwdWJsaWMgU3RyaW5nIGdldEF1dG9yKCkgeyByZXR1cm4gYXV0b3I7IH0KICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGl0bHUoKSB7IHJldHVybiB0aXRsdTsgfQogICAgcHVibGljIFN0cmluZyBnZXRKdXJuYWwoKSB7IHJldHVybiBqdXJuYWw7IH0KICAgIHB1YmxpYyBpbnQgZ2V0QW5QdWJsaWNhcmUoKSB7IHJldHVybiBhblB1YmxpY2FyZTsgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gU3RyaW5nLmZvcm1hdCgiJXMgLSBcIiVzXCIsIMOubiAlcyAoJWQpIiwgYXV0b3IsIHRpdGx1LCBqdXJuYWwsIGFuUHVibGljYXJlKTsKICAgIH0KCiAgICBwdWJsaWMgaW50IGNhbGN1bGVhemFWZWNoaW1lKCkgewogICAgICAgIGludCBhbnVsQ3VyZW50ID0gWWVhci5ub3coKS5nZXRWYWx1ZSgpOyAvLyBEaW5hbWljOiB2YSByZXR1cm5hIDIwMjYKICAgICAgICByZXR1cm4gYW51bEN1cmVudCAtIGFuUHVibGljYXJlOwogICAgfQp9CgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgLy8gT3JnYW5pesSDbSBkYXRlbGUgw65udHItdW4gdGFibG91IHBlbnRydSBhIHB1dGVhIGl0ZXJhIHByaW4gZWxlCiAgICAgICAgQXJ0aWNvbFtdIGNvbGVjdGllID0gewogICAgICAgICAgICBuZXcgQXJ0aWNvbCgiUG9wZXNjdSBBbmEiLCAiSUEgaW4gZWR1Y2F0aWUiLCAiQUkgSm91cm5hbCIsIDIwMjIpLAogICAgICAgICAgICBuZXcgQXJ0aWNvbCgiSW9uZXNjdSBNaWhhaSIsICJBbGdvcml0bWkiLCAiQ1MgUmV2aWV3IiwgMjAxOSksCiAgICAgICAgICAgIG5ldyBBcnRpY29sKCJHZW9yZ2VzY3UgRWxlbmEiLCAiU2lzdGVtZSIsICJJVCBUb2RheSIsIDIwMjQpCiAgICAgICAgfTsKCiAgICAgICAgQXJ0aWNvbCBjZWxNYWlSZWNlbnQgPSBjb2xlY3RpZVswXTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJMaXN0YSBhcnRpY29sZWxvcjoiKTsKICAgICAgICBmb3IgKEFydGljb2wgYXJ0IDogY29sZWN0aWUpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItICIgKyBhcnQpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gRGV0ZXJtaW7Eg20gY2VsIG1haSByZWNlbnQgYXJ0aWNvbCDDrm4gdGltcHVsIHBhcmN1cmdlcmlpCiAgICAgICAgICAgIGlmIChhcnQuZ2V0QW5QdWJsaWNhcmUoKSA+IGNlbE1haVJlY2VudC5nZXRBblB1YmxpY2FyZSgpKSB7CiAgICAgICAgICAgICAgICBjZWxNYWlSZWNlbnQgPSBhcnQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG4tLS0gQW5hbGl6YSAtLS0iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkFydGljb2x1bCBjZWwgbWFpIHJlY2VudDogIiArIGNlbE1haVJlY2VudC5nZXRUaXRsdSgpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlZlY2hpbWU6ICIgKyBjZWxNYWlSZWNlbnQuY2FsY3VsZWF6YVZlY2hpbWUoKSArICIgYW4oaSkuIik7CiAgICB9Cn0=