Friday, August 23, 2013

Tipe data Time : Ruby Programming

Time - Ruby Programing

Merupakan sebuah tipe data yang dapat digunakan untuk menyimpan data berupa satuan tanggal dan waktu.

Membuat sebuah variabel Time
Untuk membuat sebuah variabel time, kita hanya perlu menggunakan Time.new yang akan menghasilkan sebuah nilai berisi waktu pada saat pembuatan variabel tersebut dilakukan. Contoh :

now = Time.new atau now = Time.now

Kita juga dapat menambahkan pengaturan lainnya seperti menentukan tahun, bulan, tanggal, waktu, zona, dan lain lain. Struktur nya adalah seperti berikut ini :

Time.new(year, month, day, hour, minute, second, zone)

Sehingga kita dapat melakukan seperti berikut :

now = Time.new(2002,10,31,2,2,2,"+07:00")


Kita juga bisa menggunakan method Time.at() dalam pengisian variabel time
contoh :
now = Time.at(628232400)
Untuk mendapatkan nilai second nya tersebut kita bisa mendapatkannya dengan cara :
now = Time.new
now = Time.at(now.to_i)
Singkatnya :
now = Time.at(Time.new.to_i)


Untuk cek hari apa ini, kita dapat melakukan pengecekkannya dengan memasukkan nama hari tersebut. Contoh :
now.monday? #=> jika hari ini merupakan hari senin maka akan mengembalikan nilai true . jika salah false

Untuk mendapatkan nilai tahun sekarang, kita hanya perlu menggunakan method .year. Contoh :
now.year #=> 2013

Untuk mendapatkan informasi apakah sekarang merupakan daylight saving (siang / malam mungkin) -_-
contoh :
now.dst? #=> false jika time masih menunjukkan siang hari .. dan true pada malam hari .. iya kah ? :P

Untuk mendapatkan hari satu tahun yg akan datang . gunakan method ini
now + (60*60*24*365)


Untuk mendapatkan nilai second pada suatu tanggal . hanya perlu menggunakan to_i (konfersi ke integer)
now.to_i

Kita juga dapat membandingkan dua buah tanggal menggunakan perbandingan persamaan (==), lebih kecil (<) dan lebih besar (>)

Membuat sebuah kondisi antara dua buah tanggal ..
contoh :
year1 = Time.new(2010)
year2 = Time.new(2011)
Time.new(2010,10,31).between?(year1,year2) #=> true .. karena tanggal 31 Oktober 2010 berada diantara 2010 dan 2011


Untuk mendapatkan tanggal dan hari berdasarkan local suatu posisi, gunakan local. Contoh :
now = Time.local(2010) #=> akan diisi dengan akhiran sesuai dengan local lokasi time itu dibuat . indonesia +0700
Untuk yg bukan local, bisa gunakan utc atau gm..
contoh :
now = Time.gm(2010) atau Time.utc(2010)

Untuk mendapatkan tanggal hari berikutnya
t = Time.now
t + (60 * 60 * 24) #=> akan menghasilkan tanggal untuk hari berikutnya

Time juga dapat di kurangi . contoh :
t = Time.now
t2 = t + 2592000 (satu bulan)
t2 - t (akan menghasilkan 2592000)
t2 - 2592000 (akan kembali ke bulan sebelumnya)


Kita juga dapat membandingkan dua buah time, untuk mendapatkan nilai 1 (jika A > B), -1 atau nol (jika sama)

Untuk menampilkan sebuah tanggal dengan format tertentu bisa menggunakan asctime dan ctime
contoh :
Time.now.asctime #=> "Wed Apr 9 08:56:03 2003"
Time.now.ctime #=> "Wed Apr 9 08:56:03 2003"

Untuk mendapatkan nilai tanggal berapa sekarang, bisa menggunakan method .day
Time.now.day
t.day

Untuk mendapatkan zone time.
time.zone

Untuk membandingkan dua buah tanggal apakah sama atau tidak, bisa menggunakan eql?
contoh :
time1 = Time.new(2010)
time2 = Time.new(2010)
time1.eql?(time2) #=> akan menghasilkan nilai true karena time1 dan time2 adalah sama atau equal


Untuk mengecek apakah time tersebut merupakan gmt kita dapat menggunakan .gmt?
t = Time.local(2010,1,1,20,15,1)
t.gmt? #=> false karena merupakan time local
y = t.getgm #=> untuk mendapatkan nilai gmt nya .. 
y.gmt? #=> true karena y diisi dengan time gmt dari t
t == y #=> true karena t dan y sama meskipun isi nya berbeda . secara waktu dunia itu sama ..

Untuk konfersi dari gmt ke local, bisa menggunakan .getlocal
Contoh :
time_gmt = time_gmt.getlocal

UTC dan GMT sama saja, gunakan gmt? dan getgm

Untuk mengecek berapa banyak perbedaan antara waktu gmt dan local bisa menggunakan gmt_offset
time.gmt_offset

Untuk mendapatkan gmt time atau utc time bisa menggunakan .gmtime atau .utc
time.gmtime
time.utc

Untuk mendapatkan jam, bisa menggunakan .hour
time = Time.now
time.hour

Untuk konfersi time ke dalam bentuk string, bisa menggunakan .to_s
time = Time.now
time.to_s

Untuk mendapatkan menit, bisa menggunakan .min
time = Time.now
time.min

Untuk mendapatkan bulan, bisa menggunakan .mon atau .month
time = Time.now
time.mon
time.month

Konfersi time ke dalam array, bisa menggunakan .to_a
time = Time.now
time.to_a #=> [1, 36, 8, 19, 11, 2007, 1, 323, false, "CST"]
[sec, min, hour, day, month, year, wday, yday, isdst, zone]

Untuk mendapatkan hari keberapa dalam suatu tahun, bisa menggunakan .yday
Contoh :
time = Time.now
time.yday

Sekian mengenai tipe data Time pada bahasa pemrograman Ruby.

Let's share :)

1 comment: