Tarih Metodları (Date Methods)
Axapta üzerinde işlemler yaparken çok kez tarih işlemleriyle karşı karşıya kalırız. Bu durumla çözümler bulabilmek için çeşitli tarih fonksiyonlarından yararlanırız. Bende bu konuda bu fonksiyonlardan bahsetmeye çalışacağım.
Zaman zaman karşımıza tarih ile ilgili bir işlem yapmamız ve bir değer döndürmemiz istenir. Bu gibi durumlarda aşağıda bahsedeceğimiz fonksiyonlardan yararlanarak işimi çok daha rahat çözmemiz sağlanır.
static void Erkn_DateMethods(Args _args) { TransDate date1, date2; TransDate date3, date4; int yearValue, monthValue; int value; TimeHour24 timeSec; int diff; str name; date1 = systemDateGet(); //Sistem tarihini alır(Client üzerindeki makinedeki saati alır) date2 = today(); //Sistem tarihini alır(AOS un kurulu olduğu makinedeki saati alır) info(strFmt("systemDateGet = %1",date1)); info(strFmt("today = %1", date2)); timeSec = timeNow();//Sistem saatini saatini saniye cinsinden alır info(strFmt("timeNow = %1", timeSec)); //mkDate : girilen değerlere göre tarih oluşturur //tarihDegiskeni = mkDate(gün,ay,yıl) //int cinsinden değerler verilir. date2 = mkDate(18,11,2014); info(strFmt("mkDate = %1", date2)); //----------------------------------------------------- date3 = nextMth(date2); //Verilen tarihe bir ay ekler info(strFmt("nextMth = %1", date3)); date3 = nextYr(date1); //Verilen tarihe bir yıl ekler info(strFmt("nextYr = %1", date3)); date3 = nextQtr(date1);//Verilen tarihe bir çeyrek(4 ay) ekler info(strFmt("nextQtr = %1", date3)); //----------------------------------------------------- date4 = prevMth(date1);//Verilen tarihe bir ay çıkartır info(strFmt("prevMth = %1", date4)); date4 = prevQtr(date1);//Verilen tarihe bir çeyrek(4 ay) çıkartır info(strFmt("prevQtr = %1", date4)); date4 = prevYr(date1);////Verilen tarihe bir yıl çıkartır info(strFmt("prevYr = %1", date4)); //----------------------------------------------------- date4 = dateStartMth(date1); //Verilen tarihin ay bazında ilk gününü döndürür. info(strFmt("dateStartMth = %1", date4)); date4 = dateEndMth(date1); //Verilen tarihin ay bazında son gününü döndürür. info(strFmt("dateEndMth = %1", date4)); //----------------------------------------------------- date3 = dateStartWk(date2); //verilen tarihin hafta bazında ilk gününü (tarih olarak) döndürür info(strFmt("dateStartWk = %1", date3)); date3 = dateEndWk(date2); //verilen tarihin hafta bazında son gününü (tarih olarak) döndürür info(strFmt("dateEndWk = %1", date3)); //----------------------------------------------------- yearValue = year(date1); //Girilen tarihin yılını döndürür (int olarak) info(strFmt("year = %1", yearValue)); monthValue = mthOfYr(date2); //Girilen tarihin ayını döndürür (int olarak) info(strFmt("monthValue = %1", monthValue)); //----------------------------------------------------- value = dayOfYr(date1); //Girilen tarihteki günün yılın kaçıncı günü olduğunu döndürür. info(strFmt("dayOfYr = %1", value)); value = dayOfMth(date1);//Girilen tarihteki günün ayın kaçıncı günü olduğunu döndürür. info(strFmt("dayOfMth = %1", value)); value = mthOfYr(date1);//Yılın kaçıncı ayı olduğunu döndürür. info(strFmt("mthOfYr = %1", value)); value = wkOfYr(date1);//Yılın kaçıncı haftası olduğunu döndürür. info(strFmt("wkOfYr = %1", value)); value = dayOfWk(date1);//Haftanın kaçıncı günü olduğunu döndürür. info(strFmt("dayOfWk = %1", value)); //----------------------------------------------------- name = dayName(dayOfWk(date1));//Verilen günün ismini döndürür.İnt değer alır. dayOfWk ile kullanmak sağlıklıdır. info(strFmt("dayName = %1", name)); name = mthName(mthofyr(date1));//Verilen ayın ismini döndürür.İnt değer alır. mthofyr ile kullanmak sağlıklıdır. info(strFmt("mthName = %1", name)); //Not isimler ingilizcedir. //----------------------------------------------------- //Tarihlerle İşlemler diff = date1 - date2; //İki tarih arası farkı bulur. Bu fark gün cinsindendir. info(strFmt("Tarih Farkı = %1", diff)); date3 = date1 + 26; //Tarihe gün ekler info(strFmt("Tarih Ekleme = %1", date3)); timeSec = timeSec + 50; //Zamana saniye ekler info(StrFmt("Saniye Ekleme = %1", timeSec)); }
Bu yukarıdaki metodların dışında “DateTimeUtil” classıylada bir çok çeviri işlemi yapılabilir. İleriki konularımızda bu classa değinebiliriz.