1 Aralık 2013 Pazar

JAVASCRIPT KÜTÜPHANELERİNİN DİZGİ VE MATEMATİK FONKSİYONLARI İÇİN KULLANIMI VE DATEJS KÜTÜPHANESİ

JavaScript Kütüphanelerinin Dizgi ve Matematik Fonksiyonları İçin Kullanımı
Merhaba arkadaşlar, bu hafta JavaScript kütüphanelerinin dizgi (string) ve matematik fonksiyonları için kullanımını ve Datejs kütüphanesini göreceğiz. Javascript; sayılar, matrisler, kompleks sayılar, dizgiler, çeşitli düzenli ifadeler (regular expressions), vektörler ve tarihler gibi pek çok dizgi ve matematik kavramları üzerinde çalışmamızı sağlayan kütüphanelere sahiptir. Bu kütüphanelerin başlıcaları string.js (dizgiler üzerinde çeşitli çalışmalar yapmamızı sağlayan kütüphane), Sylvester (oldukça kolay şekilde matris ve vektör oluşturmaya yarayan kütüphane), XRegExp (düzenli ifadelerle çalışmamızı sağlayan kütüphane), math.js (matematiksel pek çok işlem için kolaylık sağlayan kütüphane) ve bugün anlatacağımız Date.js (tarih-saat verileri üzerinde çalışmamızı sağlayan kütüphane) gibidir.

Datejs Kütüphanesi

Datejs açık kaynak bir JavaScript kütüphanesidir. Oldukça kapsamlı, basit ve hızlıdır. Bu kütüphaneyi kullanarak tarih ve saat formatlarını istediğimiz haline dönüştürebilir ve o şekliyle kullanabiliriz. Kütüphaneyi kullanmak için, öncelikle Datejs linkinden indirebilirsiniz. Kütüphaneyi indirdikten sonra bir ASP.NET sayfasında kullanabilmek için, aşağıdaki şekilde görüldüğü gibi, projemizin dosyalarına ekliyoruz: 

  Bu işlem sonrasında sayfanın <head> bölümüne aşağıdaki satırı yazarak, kütüphaneyi sayfa için kullanılabilir hale getiriyoruz:
<script type="text/javascript" src="Scripts/date.js"></script>
  Örneğimize başlamadan önce, Datejs çalışmalarında kullanılan, kütüphanenin belli başlı fonksiyonları tanıyalım: 
  • today(): Fonksiyon herhangi bir parametre almaz ve o anki tarih değerini döndürür. Fonksiyonla dönen saat ise günün başlangıç saati olacaktır (00:00 veya 12:00 AM gibi). Kullanımı: 
  • Date.today();
  • compare(): Fonksiyon parametre olarak iki tarih değeri alır ve aldığı birinci tarih değeriyle, ikinci tarih değerini karşılaştırır. Aşağıdaki örneğimizde eğer bu iki tarih eşitse "0"; tarih1, tarih2'den küçükse "-1" ve tarih1, tarih2'den büyükse "1" değerini döndürür.
  •  Date.compare ( Date tarih1, Date tarih2) 
    
  • equals(): Fonksiyon parametre olarak iki tarih değeri alır ve bu iki tarih değeri eşitse "true" (doğru), eşit değilse "false" (yanlış) değerlerini döndürür. Kullanımı:
  •  Date.equals( Date tarih1, Date tarih2) 
    
  • getDayNumberFromName(): Fonksiyon parametre olarak ingilizce gün isimlerini alır ve 0-6 arasında numaralandırılmış olan sayısal değerlerini döndürür: Sunday (Pazar) = 0, Monday (Pazartesi) =1 gibi. Aşağıdaki örnekte parametre olarak, Tuesday (Salı) isimli günü girdiğimizde fonksiyon 2 değerini döndürecektir:
  •  Date.getDayNumberFromName('Tuesday'); 
    
  • getMonthNumberFromName(): Fonksiyon parametre olarak ingilizce ay isimlerini alır ve 0-11 arası numaralandırılmış olan sayısal değerlerini döndürür: January (Ocak)=0, February (Şubat)=1 gibi. Aşağıdaki örnekte parametre olarak March (Mart) isimli ayı girdiğimizde fonksiyon 2 değerini döndürecektir:
  •  Date.getMonthNumberFromName('March'); 
    
  • isLeapYear(): Fonksiyon parametre olarak olarak yıl değerini alır ve o yıl artık yıl ise "true", değilse "false" değerini döndürür. Kullanımı:
  •  Date.isLeapYear(2013);  //false 
    
  • getDaysInMonth(): Fonksiyon parametre olarak yıl ve ay değeri alır ve o ayın kaç gün çektiğini gösterir.Aylar yine 0-11 arası numaralandırılmış değeriyle girilir. Artık yıl hesabını otomatik olarak yapar.Kullanımı:
  •  Date.getDaysInMonth(2013, 10);  //2013, Kasım ayı için: 30 döndürür. 
    
  • parse(): Fonksiyon parametre olarak bir dizgi değeri alır ve onu Date nesnesine (tarih nesnesi) dönüştürüp, dönüştürdüğü o tarihi döndürür. Eğer herhangi bir tarih formatıyla eşleştirilemeyen, tarih nesnesine dönüştürülemeyen bir dizgi değeri girilmişse, null (boş, geçersiz) değerini döndürür. Kullanım örnekleri:
  • Date.parse("today"); //Bu günün tarihini döndürür.
    Date.parse("t + 6 d") // today + 6 days: Bugünün tarihinin 6 gün sonrasını döndürür.
    Date.parse("next thursday") // Bulunulan tarihten sonraki ilk perşembe gününü                                                  // döndürür.
    Date.parse("February 22th 2013") // 22 Şubat 2013 tarihini döndürür.
    Date.parse("Thu, 2 May 2013 22:30:00") //2 Mayıs 2013 saat 22:30:00'ı döndürür.
    
  • parseExact(): Fonksiyon parametre olarak, tarih nesnesine dönüştürülecek olan dizgi değerini ve o dizgi değerinin, hangi formatta alınacağını belirten format dizgisini alır. Format dizgisiyle eşleşen tarih değerlerini, birer tarih nesnesi olarak döndürür. Girilen format dizgisiyle eşleşmeyen formattaki tarihler "null" (boş, geçersiz) değer döndürecektir. Kullanım örnekleri:
  •  Date.parseExact("10/15/2013", "M/d/yyyy"); // "10/15/2013" dizgisini tarih nesnesi                                                                      //olarak döndürür. 
    
    Date.parseExact("10.15.2004", "M/d/yyyy"); //formatın dışında bir dizgi girişi                                                                                  //olduğundan null değer döndürür.
    
  • add(): Fonksiyon parametre olarak gün (days), ay (months), yıl (years), saat (hours), dakika (minutes), saniye (seconds) ve milisaniye (miliseconds) gibi tarih niteliklerini içeren yapılandırma nesnesi alır ve birlikte çağrıldığı tarih objesine ekler / çıkarır (Negatif nitelikler eklendiğinde çıkarılmış oluyor.). Kullanımı:
  • 
    Date.today().add({
    milliseconds: 500,
    seconds: 30,              // Bugünün tarihine girilen niteliklerin değerlerini ekler.
    minutes: 45,
                hours: 18,
                days: -15,
                months: 6,
    years: 1
    });
    
  • between(): Fonksiyon parametre olarak iki tarih nesnesi alır ve birlikte çağrıldığı tarih nesnesinin değeri o iki tarihin arasındaysa "true" (doğru), değilse "false" (yanlış) değerini döndürür. Kullanımı:
  • var tarih1= new Date(2009, 4, 5);
    var tarih2= new Date(2014, 11, 25)
    Date.today().between(tarih1, tarih2);//Bugünün tarihi parametre tarihleri arasındaysa                                                        //true, değilse false döndürür.
    
  • set(): Fonksiyon parametre olarak add() fonksiyonuyla aynı şekilde, tarih niteliklerini içeren bir yapılandırma nesnesi alır ve birlikte çağrıldığı tarih nesnesinin değerlerine, yapılandırma nesnesindeki ilgili değerleri atar. Kullanımı:
  • Date.today().set({
    millisecond: 500,
    second: 30,            // Bugünün tarihini girilen niteliklerin değerleri ile değiştirir.
    minute: 45,
                hour: 18,
                day: -15,
                month: 6,
    year: 1
    });
    
  • sunday(), monday(), tuesday(), wednesday(), thursday(), friday(), saturday(): Haftanın günlerinin ingilizce isimlerinden oluşan bu fonksiyonlar, ismiyle aynı olan günü nitelendirirler. Herhangi bir parametre almazlar ve daha çok next(), is() gibi fonksiyonlarla beraber kullanılarak, birlikte çağrıldıkları tarih nesnesiyle, istenilen tarih değerini döndürür ya da istenilen kontrolü yaparlar. Kullanımı:
  • Date.today.next().tuesday(); //Bugünden bir sonraki salı gününün tarihini döndürür. Date.today().is().monday(); //Bugün pazartesi ise "true", değilse "false" değerini // döndürür.
  Kütüphanenin temel bazı fonksiyonlarını tanıdık. Şimdi artık bu fonksiyonları kullanarak bir Datejs kütüphanesi örneği yapabiliriz:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DateJSExample.Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <div id="txt"></div> <script type="text/javascript" src="Scripts/date.js"> </script> <script type="text/javascript"> var t = document.getElementById("txt") txt.innerHTML += '2012 artık yıl mı ?(evet=true, hayır=false):' + Date.isLeapYear(2012); txt.innerHTML += '<br />' + '<br />' txt.innerHTML += 'Bugünün tarihi: ' txt.innerHTML += Date.today() txt.innerHTML += '<br />' + '<br />' txt.innerHTML +='Bugünden sonraki ilk perşembenin tarihi: ' txt.innerHTML += Date.today().next().thursday(); txt.innerHTML += '<br />' + '<br />' txt.innerHTML += 'Üç gün sorasının tarihi: ' txt.innerHTML += Date.today().add({days:3}); txt.innerHTML += '<br />' + '<br />' txt.innerHTML += 'Bugün cuma mı ?(evet=true, hayır=false): ' + Date.today().is().friday() ; txt.innerHTML += '<br />' + '<br />' txt.innerHTML+='Bugünün tarihinin değiştirilmiş hali: ' txt.innerHTML += Date.today().set({ month :1, day: 15, year:2010 }); txt.innerHTML += '<br />' + '<br />' txt.innerHTML += 'Mart ayının sırası? (0-11): '; txt.innerHTML += Date.getMonthNumberFromName('March'); txt.innerHTML += '<br />' + '<br />' txt.innerHTML += 'TARİH NESNESİNE DÖNÜŞÜMLER :' txt.innerHTML += '<br />' + '<br />' txt.innerHTML += Date.parse('today'); txt.innerHTML += '<br />' + '<br />' txt.innerHTML += Date.parse('t + 5 d'); txt.innerHTML += '<br />' + '<br />' txt.innerHTML += Date.parse('var olmayan bir tarih formatı'); txt.innerHTML +='<br/>' +'<br/>' txt.innerHTML += Date.parse('next thursday'); txt.innerHTML += '<br />' + '<br />' txt.innerHTML += Date.parse('February 22th 2013'); txt.innerHTML += '<br />' + '<br />' txt.innerHTML += Date.parse('Thu, 5 July 2008 20:30:00'); txt.innerHTML += '<br />' + '<br />' </script> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>
  Örneğimizde yukarıda gördüğümüz fonksiyonların bazılarını kullanarak çeşitli niteliklerde tarih nesneleri oluşturduk ve sayfamıza ekledik. Şimdi örneğimizin çıktısını görelim:


  Bu haftalık anlatacaklarım bu kadar. Datejs kütüphanesi ve çeşitli fonksiyonlarının kullanımı, umarım örneklerle daha anlaşılır hale gelmiştir. 

Kaynaklar:

Hiç yorum yok:

Yorum Gönder