28 Ocak 2018 Pazar

Calendar Sınıfı

Şu satırı dahil ederiz.
import java.util.Calendar;
Bu sınıfta günler 1'den başlar. Aylar ise 0'dan başlar. Mayıs için 5 değil 4 sayısı kullanılır.

add metodu
date
Günü ileri geri oynatmak için DATE, DAY_OF_MOTH, DAY_OF_YEAR,DAY_OF_WEEK sabitlerinde herhangi birisi kullanılabilir. Bu sabitler şöyledir.
case DAY_OF_MONTH: // synonym of DATE
case DAY_OF_YEAR:
case DAY_OF_WEEK:
  break;
61 gün ileri götürmek için şöyle yaparız.
int days = "61;
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, days);
4 gün geri götürmek için şöyle yaparız.
cal.add(Calendar.DAY_OF_MONTH, -4);
month
1 ay ileri götürmek için şöyle yaparız.
cal.add(Calendar.MONTH, 1);
clear metodu
Şöyle yaparız.
Calendar calendar = Calendar.getInstance();
...
calendar.clear();
get metodu
Calendar'ın Year, Month, Day, Day of Month gibi alanları ayrı ayrı alınabilir. En çok kullanılanları şunlar.
int year = calendar.get (Calendar.YEAR);
int month = calendar.get (Calendar.MONTH);
int day = calendar.get (Calendar.DAY);
Örnek
Şöyle yaparız.
c.get (Calendar.DAY_OF_MONTH);
Örnek
Şöyle yaparız.
Calendar c = ...;
c.set(Calendar.DAY_OF_MONTH, 1); // Ayın ilk gününe getir.
int wd = c.get(Calendar.DAY_OF_WEEK);
if (wd > Calendar.MONDAY ) { //Eğer ayın ilk günü Pztesi değilse
  c.add(Calendar.DAY_OF_MONTH, 7); //1 hafta ekle
}
getActualMaxium metodu
Nesnemizin Mayıs ayını gösterdiğini varsayalım. Ayın gün sayısını almak için şöyle yaparız.
int days = c.getActualMaximum(Calendar.DAY_OF_MONTH);//31
Haftanın gün sayısını almak için şöyle yaparız.
int days = c.getActualMaximum(Calendar.DAY_OF_WEEK);//7
getInstance metodu
Genelde şöyle kurulur.
Calendar calendar = Calendar.getInstance();
Bazı kodlarda şöyle kurulduğunu da gördüm ama bana mantıklı gelmiyor.
Calendar calendar = new GregorianCalendar();
Şimdiki zamanı atayan şöyle kodlar var.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
Bunu yapmaya gerek yok çünkü getInstance() metodu zaten atamayı yapıyor.
public GregorianCalendar(TimeZone zone, Locale aLocale) {
    super(zone, aLocale);
    gdate = (BaseCalendar.Date) gcal.newCalendarDate(zone);
    setTimeInMillis(System.currentTimeMillis());
}
getInstance metodu - TimeZone
Şöyle yaparız.
TimeZone timeZone = ...;
Calendar cal = Calendar.getInstance(timeZone);
getInstance metodu - TimeZone + Locale
Örnek ver

getTime metodu
Epoch'tan beri geçen süreyi milisaniye olarak saklayan Date nesnesi döndürür yani tarih ve zamanı alabiliriz. Şöyle yaparız.
Calendar c = Calendar.getInstance();
Date d = c.getTime();
getTimeInMillis metodu
Epoch'tan beri geçen süreyi verir.
long milliSeconds = cal.getTimeInMillis()
getTimeZone metodu
TimeZone tipi döner. Şöyle yaparız.
// get current TimeZone using getTimeZone method of Calendar class
TimeZone timeZone = cal.getTimeZone();
set metodu
Şöyle yaparız.
calendar.set(Calendar.MONTH, 6);
calendar.set(Calendar.YEAR, 2013);
calendar.set(Calendar.DAY_OF_MONTH, 13);

calendar.set(Calendar.HOUR_OF_DAY, 20);
calendar.set(Calendar.MINUTE, 48);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.AM_PM,Calendar.PM);
setTimeInMillis metodu
Epoch'tan beri geçen süre atandıktan sonra yıl,ay,gün bulunabilir.
Örnek
Şöyle yaparız.
long milliSeconds = ...;
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
Örnek
Bu metod Date constructor ile aynıdır. Şöyle yaparız.
Long timeInMilis = 1509966414000l;
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timeInMilis);
System.out.println("Using Calendar instance : "+cal.getTime());

Date date = new Date(timeInMilis);
System.out.println("Using date instance : "+date);
Çıktı olarak şunu alırız.
Using Calendar instance : Mon Nov 06 16:36:54 IST 2017
Using date instance : Mon Nov 06 16:36:54 IST 2017
toString
Calendar nesnesinin bütün özelliklerini yazar. Şuna benzer bir çıktı alırız.
1:java.util.GregorianCalendar[time=851385600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/London",offset=0,dstSavings=3600000,useDaylight=true,transitions=242,lastRule=java.util.SimpleTimeZone[id=Europe/London,offset=0,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=1996,MONTH=11,WEEK_OF_YEAR=52,WEEK_OF_MONTH=4,DAY_OF_MONTH=24,DAY_OF_YEAR=359,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=0]:4:<





Hiç yorum yok:

Yorum Gönder