Java, java.util paketi içinde mevcut olan Date sınıfını sağlar, bu sınıf güncel tarih ve zamanı kapsüllemektedir.

Benzer belgeler
Java String İşlemleri

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

JAVADA DİZİ İŞLEMLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Sunum İçeriği. Programlamaya Giriş

BASİT VERİ TÜRLERİ, STRİNGLER, VE KONSOL GİRİŞ/ÇIKIŞ

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

Klavyeden Basit Giriş/Çıkış İşlemleri

Kılgılayan Sınıflar: AbstractMap, Attributes, HashMap, Hashtable, IdentityHashMap, RenderingHints, TreeMap, WeakHashMap

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Programlama Dillerinde Kullanılan Veri Tipleri

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

BMH-303 Nesneye Yönelik Programlama

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BİL132 Bilgisayar Programlama II

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

// hataları işaret eden referans

Karşılaştırma İşlemleri ve Koşullu İfadeler

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

String (Dizgi) İşlemleri

Mantıksal İşlemler. 7.1 true, false, nil

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

EMT2226 Nesne Yönelimli Programlamaya Giriş

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

HSancak Nesne Tabanlı Programlama I Ders Notları

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA GÜZ DÖNEMİ ÖDEV-1

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

BİL-142 Bilgisayar Programlama II

Temel Veri Türü İşlemleri

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java)

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Nesne Yönelimli Programlama

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

Java da İşleçler, Ders #3 (4 Kasım 2009)

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

7. HAFTA. Erişim Belirleyiciler

HSancak Nesne Tabanlı Programlama I Ders Notları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Dizi ( Array ) ve Dizgi ( String )

Java Programlamada Paket Yapısı Ve Import

İNTERNET TABANLI PROGRAMLAMA- 4.ders

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Arasınav Örnek Soruları Bahar 2018

BİL-141 Bilgisayar Programlama I (Java)

V-Count API v İnsan Sayma sonuçları için istekler adresine gönderilecektir.

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable


Merge Sort Bireşen Sıralama

HSancak Nesne Tabanlı Programlama I Ders Notları

Java Programlama. Diziler, Döngüler ve Karakter Katarları (String Sınıfı)

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

Java. Mustafa OF. Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007)

Veritabanı Tasarımı. Düzenli İfadeler

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Programlama Dilleri 3

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1

Lambda İfadeleri (Lambda Expressions)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

JAVA API v2.0 Belge sürümü: 2.0.2

Transkript:

PART 13 13. Tarih & Zaman Java, java.util paketi içinde mevcut olan Date sınıfını sağlar, bu sınıf güncel tarih ve zamanı kapsüllemektedir. Date sınıfı 2 adet constructor destekler. İlk constructor, güncel tarih ve zaman ile nesneye ilk değerini atar. Date( ) Aşağıdaki constructor, 1 Ocak 1970 gece yarısından bu yana geçen milisaniye sayısına eşit bir bağımsız değişken kabul etmektedir. Date(long millisec) Bir kere mevcut Date nesnesine sahipseniz, tarihlerle oynamak için aşağıda desteklenen metotlardan herhangi birini çağırabilirsiniz. Methods with Description boolean after(date date) Date nesnesi çağrılırken belirtilen tarihten sonra bir tarih içeriyorsa, true değeri döndürür, aksi halde false değeri döndür. boolean before(date date) Date nesnesi çağrılırken belirtilen tarihten önce bir tarih içeriyorsa, true değeri döndürür, aksi halde false değeri döndür. int compareto(date date) Çağrılan nesnenin değeri ile bu tarihi karşılaştırır. Değerler eşit ise, 0 döndürür. Çağrılan nesne tarihten daha önce iste negatif değer döndürür. Çağrılan nesne tarihten daha sonra ise pozitif değer döndürür. boolean equals(object date) Date nesnesi çağrılırken belirtilen tarihe eşit bir tarih ve zaman içeriyorsa, true değeri döndürür, aksi halde false değeri döndür. String tostring( ) Çağrılan Date nesnesini string türüne çevirir ve değeri döndürür.

13.1 Güncel Tarih ve Zamanı Alma Javada, güncel tarih ve zamanı alma çok kolaydır. Aşağıdaki gibi güncel tarih ve zamanı yazdırmak için basit bir Date nesnesini tostring() metodu ile kullanabilirsiniz. import java.util.date; public class DateDemo { // Instantiate a Date object Date date = new Date(); // display time and date using tostring() System.out.println(date.toString()); Bu aşağıdaki sonucu üretecektir: Mon May 04 09:51:52 CDT 2012 13.2 Tarih Karşılaştırma 2 farklı tarihi karşılaştırmak için iki adet yöntem vardır. 1. before(), after() ve equals() metolarını kullanabilirsiniz. 2. compareto() metodunu kullanabilirsiniz. Örnek: import java.text.*; public class DateDemo { Date d1 = new Date(); SimpleDateFormat ft1 = new SimpleDateFormat ("yyyy.mm.dd hh:mm:ss"); ft1.format(d1); Date d2 = new Date( ); SimpleDateFormat ft2 = new SimpleDateFormat ("2012.11.dd hh:mm:ss"); ft2.format(d2); System.out.println("D1: " + ft1.format(d1) ); System.out.println("D2: " + ft2.format(d2) ); System.out.println(d1.after(d2)); System.out.println(d1.before(d2)); System.out.println(d1.compareTo(d2)); System.out.println(d1.equals(d2));

Bu aşağıdaki sonucu üretecektir: D1: 2013.03.10 10:38:12 D2: 2012.11.10 10:38:12 false true -1 false 13.3 Tarih Biçimlendirme (SimpleDateFormat) SimpleDateFormat, yerele duyarlı bir şekilde tarihleri biçimlendirmek ve öğelerine ayırmak için kullanılan somut bir sınıftır. SimpleDateFormat, tarih-zaman biçimlendirme için herhangi kullanıcı tanımlı bir kalıp seçerek başlatmanıza izin verir. import java.text.*; public class DateDemo { Date dnow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("yyyy.mm.dd hh:mm:ss"); System.out.println("Current Date: " + ft.format(dnow)); Bu aşağıdaki sonucu üretecektir: Current Date: 2013.03.10 10:13:46 SimpleDateFormat biçimlendirme kodları Zaman biçimini belirtmek için,time pattern string kullanın. Bu kalıpta, bütün ASCII karakterleri, kalıp karakterleri olarak ayrılmıştır. Aşağıdaki tabloda gösterilmektedir: Karakter Tanımlama Örnek G Çağ göstergesi AD y Dört basamaklı yıllar 2001 M Yılın ayı July or 07 d Ayın günü 10

h Saat A.M./P.M. türünde (1~12) 12 H Saat (0~23) 22 m Dakika 30 s Saniye 55 S Milisaniye 234 E Haftanın günü Tuesday D Yılın günü 360 F Ay içinde haftanın günü 2 (second Wed. in July) w Yılın haftası 40 W Ayın haftası 1 a A.M./P.M. işaretcisi PM k Günün saati (1~24) 24 K Saat A.M./P.M. türünde (0~11) 10 z Saat dilimi Eastern Standard Time ' Metin için kaçış Delimiter " Tek tırnak ` 13.4 Tarihleri Stringlere Ayrıştırma SimpleDateFormat sınıfı bazı ek metotlara sahiptir, özellikle parse(), bu metot SimpleDateFormat nesnesi içinde depolanmış biçime göre string i ayrıştırır. Örnek: import java.text.*; public class DateDemo { SimpleDateFormat ft = new SimpleDateFormat ("yyyy-mm-dd"); String input = args.length == 0? "1818-11-11" : args[0]; System.out.print(input + " Parses as "); Date t; try { t = ft.parse(input); System.out.println(t); catch (ParseException e) { System.out.println("Unparseable using " + ft); A sample run of the above program would produce following result:

$ java jar DateDemo.jar 1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818 $ java jar DateDemo.jar 2007-12-01 2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007 13.5 Kısa Süreli Uyku Bir milisaniyeden bilgisayarınızın yaşam süresine kadar herhangi bir süre sleep yapabilirsiniz. Bu örnekte, program 3 saniye sleep yapmaktadır. public class SleepDemo { try { Date start = new Date(); System.out.println(start.toString() + "\n"); Thread.sleep(3000); Date stop = new Date(); System.out.println(stop.toString() + "\n"); catch (Exception e) { System.out.println("Got an exception!"); Bu aşağıdaki sonucu üretecektir: Sun May 03 18:04:41 GMT 2012 Sun May 03 18:04:44 GMT 2012 13.6 Geçen Zamanı Ölçme Bazen zaman içinde bir noktayı milisaniye cinsinde ölçmeniz gerekebilir. O halde, yukarıdaki örneği bir kere daha yazalım: public class DiffDemo { try { long start = System.currentTimeMillis( ); Date startdate = new Date();

System.out.println(startdate.toString() + "\n"); Thread.sleep(3000); long end = System.currentTimeMillis(); Date stopdate = new Date(); System.out.println(stopdate.toString() + "\n"); long diff = end - start; System.out.println("Difference is : " + diff); catch (Exception e) { System.out.println("Got an exception!"); Bu aşağıdaki sonucu üretecektir: Sun May 03 18:16:51 GMT 2012 Sun May 03 18:16:54 GMT 2012 Difference is : 3010

PART 14 14. Düzenli İfadeler Java, düzenli ifadeler ile kalıp eşleşmesi için java.util.regex paketini sağlar. Java düzenli ifadeleri, Perl programlama dili ile çok benzerdir ve öğrenmesi kolaydır. Bir düzenli ifade, desen içinde tutulan özelleştirilmiş bir syntax kullanılarak, diğer stringleri ve string kümelerini eşleştirmeye veya bulmanıza yarayan bir özel karakter dizisidir. Metin ve veriyi aramak, düzenlemek veya değiştirmek için kullanılırlar. Java.util.regex paketi başlıca,aşağıdaki üç sınıftan oluşur. Pattern Sınıfı: Bir pattern nesnesi, düzenli ifadenin derlenmiş gösterimidir. Pattern sınıfı, public constructor sağlamaz. Kalıp oluşturmak için, öncelikle onun public static derleme metotlarını çağırmanız gerekmektir, bu bir Pattern nesnesi döndürecektir. Bu metotlar, düzenli ifadeyi ilk bağımsız değişken olarak kabul eder. Matcher Sınıfı: Bir eşleştirici nesnesi, deseni yorumlayan ve bir input string ine karşı eşleştirme işlemlerini gerçekleştiren bir motordur. Pattern sınıfı gibi, Matcher sınıfı da public constructor tanımlamaz. Bir Pattern nesnesi üzerinden matcher metodunu çağırarak bir Matcher nesnesi elde edebilirsiniz. PatternSyntaxException: Bir PatternSyntaxException nesnesi, düzenli ifade desenindeki syntax hatasını gösteren denetimsiz bir exceptiondır. Örnek Aşağıdaki örnek verilen stringten e-mail stringlerinin nasıl bulunacağını anlatmaktadır: import java.util.regex.matcher; import java.util.regex.pattern; public class RegexMatches { public static void main( String args[] ){ // String to be scanned to find the pattern. String line = " Benim mailim maltepe@maltepe.edu.tr Bu ise arkadaşımın maili aa@aa.com şeklindedir."; String pattern = " \\b[\\w.%-]+@[-.\\w]+\\.[a-za-z]{2,4\\b";

// Create a Pattern object Pattern r = Pattern.compile(pattern); // Now create matcher object. Matcher m = r.matcher(line); while (m.find( )) { System.out.println("Found:" + m.group() ); Bu aşağıdaki sonucu üretecekir: Found: maltepe@maltepe.edu.tr Found: aa@aa.com Group index değerini kullanmak için // Now create matcher object. Matcher m = r.matcher(line); m.find(); System.out.println("Found 0:" + m.group(0) ); Yukarıda verilmiş kod parçası, sadece ilk bulunmuş string i gösterecektir. 14.1 Düzenli İfadelerin yazım biçimi Buradaki tablo, Java dilinde mevcut bütün düzenli ifade metakarakter syntax ını listelemektedir. Subexpression Matches ^ Satır başlangıcını eşleştirir. $ Satır sonunu eşleştirir.. Yeni satır hariç herhangi bir tekil karakterini eşleştirir. M seçeneğini kullanmakta yeni satırı eşleştirmeyi sağlar. [...] [^...] Köşeli parantez içinde herhangi bir tekil karakterini eşleştirir. Köşeli parantez olmayan herhangi bir tekil karakterini eşleştirir. \A Bütün string in başlangıcı \z Bütün string in sonu \Z İzin verilen son satır sonlandırıcı hariç bütün string in sonu re* Önceki ifadenin 0 veya daha fazla olayını eşleştirilir.

re+ re? re{ n re{ n, re{ n, m Önceki şeyin 1 veya daha fazlasını eşleştirir. Önceki ifadenin 0 veya 1 olayını eşleştirir. Önceki ifadenin n sayıda olayını eşleştirir. Önceki ifadenin n veya daha fazla olayını eşleştirir.. Önceki ifadenin en az n ve en fazla m olayını eşleştirir. a b A veya B den birini eşleştirir. (re) Düzenli ifadeleri gruplar ve eşlenmiş metni hatırlar. (?: re) Düzenli ifadeyi, eşlenmiş metni hatırlamadan gruplar. (?> re) Bağımsız deseni geileme yapmadan eşleştirir. \w Kelime karakterlerini eşleştirir. \W Kelime olmayan karakterleri eşleştirir. \s Alfabe dışı karakteri eşleştirir. [\t\n\r\f] eşdeğer. \S Matches nonwhitespace. Alfabe dışı olmayan karakteri eşleştirir.. \d Basamak eşleştirir. [0-9] eşdeğer \D Sayı olmayanı eşleştirir. \A String başlangıcını eşleştirir. \Z String sonunu eşleştirir. Eğer yeni satır varsa, yeni satırdan hemen öncekini eşleştirir. \z String sonunu eşleştirir. \G Son eşleşmenin bittiği noktayı eşler \n Grup numarası n olan back to reference yakalar \b Köşeli parantezin dışındaki kelime sınırlarını eşleştirir. Köşeli parantezin içindeki geri (backspace (0x08)) karakterlerini eşleştirir. \B Kelime olmayan sınırları eşler. \n, \t, etc. Yeni satırları,carriage returnleri,tabları eşler \Q \E ye kadar olan kaçış karakterleri \E \Q ile başlamış alıntıyı bitirir.