Jumaat, 9 Mac 2007

Artikel: Masalah Tahun 2038

Year 2038 Problem.

Dipercayai tahun 2038 akan menyebabkan beberapa software akan gagal berfungsi. ini disebabkan oleh "rounding error" apabila software yang didevelop dengan C yang gunekan fungsi time_t. time_t ni adalah datatype (defined dari time.h) yang 'diakui' oleh ISO C yang diukur dari 1 Januari 1970.

dalam C, nilai maksimum untuk signed integer (32-bit) adalah 2,147,483,647 (hex: 0x7FFFFFFF). so, the problem is apabila tiba masa (int a = 0x7FFFFFFF) iaitu pada 3:14:7 pagi 19 Januari 2038. dan untuk saat berikutnye, iaitu a+1, a akan jadi 0x80000000, tapi disebabkan melebihi had maksimum untuk integer, maka "DateTime" akan direset balik ke tahun 1901 (sebab value a sekarang jadi -2,147,483,648). haha

kebanyakkan sistem unix 32-bit akan mengalami masalah ini, disebabkan hampir keseluruhan applikasi unix dibangunkan dengan C.


Picture illustrating the problem (ripped from wikipedia :)


.NET

program yang dibangunkan dengan .NET pulak 'selamat' dari problem ini disebabkan DateTime (structure untuk hold time) akan return data type long (maksimum value untuk long/int64 adalah 9,223,372,036,854,775,807) - unless kalo ade sape sape yang main main dengan date gune COM object.

Kalo nak tau lebih lanjut, baca la reference reference kat bawah ni:

Reference
  • Wikipedia

  • 2038 Bug

  • 4 ulasan:

    1. huyo ilmuan sungguh abg FA kiat...java lak cane...cam solaris tuh...

      BalasPadam
    2. Java? sori ar, tak main la java. ahaha

      nanti aku try cari pasal java lak. kalo ade, aku update kat sini :p

      ko tak balik umah lagi ke?

      BalasPadam
    3. "During the year 2038. We can solve the problem by making the time_t data type a 64-bit integer. If it is currently a 32-bit integer, applications will have to be recompiled to work properly. But the problem is worse. Some file systems and backup media store times in 32-bit integers. These would need to be updated as well, but we still need to be able to read the old format."

      source http://safari.java.net/0201433079/app03

      BalasPadam
    4. ahaha java lah yg bagi aku duit makan...

      BalasPadam

    terima kaseh :)