Tarih: 23.01.2025
Konu: Time ve Date identifiers
Merhaba sevgili IRCforumları kullanıcıları ve mirc scripting severler. Sizlere bugün anlatmak istediğim forumumuzda geniş bir anlatımı olmayan time ( zaman/süre ) ve date ( tarih vb. ) identifier kullanımlarından bahsedeceğim.
$ctime => Bu identifier sistem zamanına göre 1 ocak 1970, 00:00:00 GMT'den bu yana geçen toplam saniye sayısını döndürür.
Bu kayıtlıdır ve istediğimiz zaman bu bilgiye istediğimiz tarih ve saate göre ulaşabiliriz. Aşağıda bazı örnekler vererek anlatacağım.
örnek;
Kod:
Yukarıda bahsettiğim gibi bu echo komutunu kullandığımız an bize tam o zamanın toplam saniye sayısını verir.
$asctime => Bu identifier belirlenen zaman için varsayılan formatı döndürür.
kısacası bunu şöyle açıklayabilirim; $ctime ile elde edilen bilginin ne olduğunu onaylatmak için kullanılabilir olayı daha iyi anlamanız için örneklendireceğim.
Kod:
bize bu şekilde dönecektir. Burada gün saat ve yıl olarak bilginin içerdiğini farketmişsinizdir.
Şimdi yukarıda öğrendiğimiz $ctime identifier ile elde ettiğimiz verinin hangi tarihe ait olduğuna bir bakalım.
Örnek;
Kod:
olarak dönecektir bize.
Devam edelim...
1970 den itibaren herhangi bir geçen zaman için bu zamanın hangi değerlere sahip olduğunu $ctime ile öğrenebiliriz.
Örnek;
Kod:
burada bize bu değeri vericektir. 4. Ayın 21 inde ve yıl 72 saat 1:30 daki tam geçen süreyi elde ederiz. Bunu şu şekilde görebiliriz.
Kod:
olarak dönecektir bizlere tam tarih ve saat bilgisini alabiliyoruz.
$ctimer => Bu identifier bizlere tetiklenen timer çalışmasının adını verir.
$date => Geçerli tarihi gün/ay/yıl formatında döndürür. ABD formatında tarihi almak için $adate kullanılabilir.
Örnek;
Kod:
olarak bize dönecektir. ( gün ay yıl )
Örnek2;
Kod:
olarak bize dönecektir ( ay gün yıl )
Aralarındaki fark aylar ve günlerin yer değiştirmesinden ibarettir.
$day => Bu identifier geçerli günün adını döndürür. ( pazartesi, salı, çarşamba vb. )
Örnek;
Kod:
olarak dönecektir.
Burada ingilizce vericektir bilgileri ama diyorsanız ben ingilizceden anlamam illede türkçe olsun güzelim türkçemizin neyi var kardeşim. Bunun içinde aşağıya ufak bir yardımcı yol sunacağım örnek olması için.
Örnek;
Kod:
Kod:
olarak dönecektir.
Örnek2;
Kod:
dönecektir.
$daylight => Bu identifier yaz saati uygulaması yürürlükteyse saniye cinsinden offset değerini döndürür, değilse 0 döndürür.
$duration(seconds,N) => Bu identifier belirtilen saniye sayısını hafta/gün/saat/dakika/saniye formatında döndürür.
N parametresi isteğe bağlıdır. Eğer N = 2 ise, sonuç saniye değerini içermez. Eğer N = 3 ise, sonuç hh:nn:ss formatında olur.
Örnek;
Kod:
elde ettik.
Kod:
elde ettik.
Kod:
elde ederiz. Burada alınan bilgi ile en ilk başta geçen zaman diliminin kıyaslanmasıdır. İdentifier içerisinde N değerini 2 veya 3 olarak değiştirirseniz formatıda değişicektir.
$timezone => Bu identfier geçerli saat dilimi ayarını saniye cinsinden döndürür.
Örnek;
Kod:
olarak dönecektir.
$fulldate => Bu identifier geçerli tarihi Çar Haz 26 21:41:02 1996 formatında döndürür.
Örnek;
Kod:
olarak dönecektir.
$idle => Bu identifier geçerli boşta kalma süresini döndürür pek kullanıldığını görmedim ama çok kullanışlı bir identifier. (ctcp finger tarafından döndürülen süre ile aynıdır).
$ltimer => Bu identifier timer komutu tarafından başlatılan son zamanlayıcının kimliğini döndürür.
Örnek;
Kod:
Kod:
olarak dönecektir.
$time => Bu identifier geçerli zamanı saat, dakika, saniye formatında döndürür.
Örnek;
Kod:
olarak dönecektir.
$timer(N/name) => Bu identifier zamanlayıcı listesindeki N zamanlayıcısının kimliğini döndürür. N değeri içerisinde sayı veya timer adı yazabilme olanağı tanır ve timer ile birlikte çalışır.
Properties: com, time, reps, delay, type, secs, mmt, anysc, wid, cid, hwnd, pause, name
$timer(0) => aktif zamanlayıcıların sayısını döndürür
$timer(1) => 1. zamanlayıcının kimliğini döndürür
$timer(1).com => 1. zamanlayıcının komutunu döndürür
$timer(3).type =>3. zamanlayıcının çevrimiçi/çevrimdışı durumunu döndürür
$timer(3).secs => zamanlayıcının tetiklenmesine kalan saniye sayısını döndürür
$timer(3).mmt => zamanlayıcı bir multimedya zamanlayıcısı ise $true döndürür
$timer(3).anysc => /timer -i anahtarı belirtilmişse $true döndürür
Not: name özelliği, belirtilen parametreyi bir zamanlayıcı adı olarak kabul eder (eğer ad bir sayı ise) ve zamanlayıcı N pozisyonunu döndürür.
Şimdi aklımda olan timer ve $ltimer identifier kullanarak yapabileceğiniz şeyler için bir örnekte bulunacağım. Sunucu içerisinde yeni gelişmekte olan sunucuların en büyük problemleri sohbet ortamının yeterince oluşamamasıdır. Bunun için sunucu sahiplerine sağlanan bazı konuşma botları mevcut ama bunların diyalogları pek mantıklı sohbetler olmuyor benim gözlemlediğim kadarıyla diyalogları kendinizin ayarlayabileceği güzel bir sohbet oluşturma imkanınız sağlanabilir aslında $timer ve $ltimer kullanarak basit bir örnekle ifade edeceğim.
Örnek;
Kod:
Kullanım;
/_aktf
Görünüm;
* Zaman ali aktif edildi
-
* Zaman ali2 aktif edildi
-
* Zaman ali3 aktif edildi
-
* Zaman ali4 aktif edildi
Text;
[13:01:44] <Mylife> selam ( ilk timer )
[13:01:49] <Mylife> selam ali nasılsın? ( 2. timer )
[13:01:54] <Mylife> iyiyim teşekkür ederim. sen nasılsın? ( 3. timer )
[13:01:59] <Mylife> bende iyiyim teşekkür ederim. ( 4. timer )
Bir çok identifier olduğundan dolayı her birisi üzerinde durma imkanım yoktu o yüzden bazılarının örneklendirmeler yaparak anlatmaya çalıştım. Aynı yöntemi kullanarak deneme yanılma yöntemi ile olayı daha iyi kavrayacağınızı düşünüyorum.
Time ve date eğitim konusunu bu şekilde bitireceğim. Umarım faydalı olmuştur. İyi forumlar dilerim.
Konu: Time ve Date identifiers
Merhaba sevgili IRCforumları kullanıcıları ve mirc scripting severler. Sizlere bugün anlatmak istediğim forumumuzda geniş bir anlatımı olmayan time ( zaman/süre ) ve date ( tarih vb. ) identifier kullanımlarından bahsedeceğim.
$ctime => Bu identifier sistem zamanına göre 1 ocak 1970, 00:00:00 GMT'den bu yana geçen toplam saniye sayısını döndürür.
Bu kayıtlıdır ve istediğimiz zaman bu bilgiye istediğimiz tarih ve saate göre ulaşabiliriz. Aşağıda bazı örnekler vererek anlatacağım.
örnek;
Kod:
//echo -a $ctime => 1737618929 olarak dönecektir.
Yukarıda bahsettiğim gibi bu echo komutunu kullandığımız an bize tam o zamanın toplam saniye sayısını verir.
$asctime => Bu identifier belirlenen zaman için varsayılan formatı döndürür.
kısacası bunu şöyle açıklayabilirim; $ctime ile elde edilen bilginin ne olduğunu onaylatmak için kullanılabilir olayı daha iyi anlamanız için örneklendireceğim.
Kod:
//echo -a $asctime =>Thu Jan 23 10:59:50 2025
bize bu şekilde dönecektir. Burada gün saat ve yıl olarak bilginin içerdiğini farketmişsinizdir.
Şimdi yukarıda öğrendiğimiz $ctime identifier ile elde ettiğimiz verinin hangi tarihe ait olduğuna bir bakalım.
Örnek;
Kod:
//echo -a $asctime(1737618929,dd/mm/yy) => 23/01/25
olarak dönecektir bize.
Devam edelim...
1970 den itibaren herhangi bir geçen zaman için bu zamanın hangi değerlere sahip olduğunu $ctime ile öğrenebiliriz.
Örnek;
Kod:
//echo -a $ctime(21/4/72 1:30:37) => 72657037
burada bize bu değeri vericektir. 4. Ayın 21 inde ve yıl 72 saat 1:30 daki tam geçen süreyi elde ederiz. Bunu şu şekilde görebiliriz.
Kod:
//echo -a $asctime(72657037,dd/mm/yy / hh:nn:ss) => 21/04/72 / 01:30:37
olarak dönecektir bizlere tam tarih ve saat bilgisini alabiliyoruz.
$ctimer => Bu identifier bizlere tetiklenen timer çalışmasının adını verir.
$date => Geçerli tarihi gün/ay/yıl formatında döndürür. ABD formatında tarihi almak için $adate kullanılabilir.
Örnek;
Kod:
//echo -a $date =>23/01/2025
olarak bize dönecektir. ( gün ay yıl )
Örnek2;
Kod:
//echo -a $adate => 01/23/2025
olarak bize dönecektir ( ay gün yıl )
Aralarındaki fark aylar ve günlerin yer değiştirmesinden ibarettir.
$day => Bu identifier geçerli günün adını döndürür. ( pazartesi, salı, çarşamba vb. )
Örnek;
Kod:
//echo -a $day => Thursday
olarak dönecektir.
Burada ingilizce vericektir bilgileri ama diyorsanız ben ingilizceden anlamam illede türkçe olsun güzelim türkçemizin neyi var kardeşim. Bunun içinde aşağıya ufak bir yardımcı yol sunacağım örnek olması için.
Örnek;
Kod:
alias _gnler return $replace($1-,Monday,pazartesi,Tuesday,salı,Wednesday,çarşamba,Thursday,perşembe,Friday,cuma,Saturday,cumartesi,Sunday,pazar)
Kod:
//echo -a $_gnler($day) => perşembe
olarak dönecektir.
Örnek2;
Kod:
//echo -a $replace($day,Monday,pazartesi,Tuesday,salı,Wednesday,çarşamba,Thursday,perşembe,Friday,cuma,Saturday,cumartesi,Sunday,pazar) => Perşembe
dönecektir.
$daylight => Bu identifier yaz saati uygulaması yürürlükteyse saniye cinsinden offset değerini döndürür, değilse 0 döndürür.
$duration(seconds,N) => Bu identifier belirtilen saniye sayısını hafta/gün/saat/dakika/saniye formatında döndürür.
N parametresi isteğe bağlıdır. Eğer N = 2 ise, sonuç saniye değerini içermez. Eğer N = 3 ise, sonuç hh:nn:ss formatında olur.
Örnek;
Kod:
//echo -a $ctime => 1737621342
elde ettik.
Kod:
//echo -a $asctime(1737621342) => Thu Jan 23 11:35:42 2025
elde ettik.
Kod:
//echo -a $duration(1737621342,1) => 2873 hafta 8 sat 35 dakika 42 saniye
elde ederiz. Burada alınan bilgi ile en ilk başta geçen zaman diliminin kıyaslanmasıdır. İdentifier içerisinde N değerini 2 veya 3 olarak değiştirirseniz formatıda değişicektir.
$timezone => Bu identfier geçerli saat dilimi ayarını saniye cinsinden döndürür.
Örnek;
Kod:
//echo -a $timezone => -10800
olarak dönecektir.
$fulldate => Bu identifier geçerli tarihi Çar Haz 26 21:41:02 1996 formatında döndürür.
Örnek;
Kod:
//echo -a $fulldate => Thu Jan 23 11:48:02 2025
olarak dönecektir.
$idle => Bu identifier geçerli boşta kalma süresini döndürür pek kullanıldığını görmedim ama çok kullanışlı bir identifier. (ctcp finger tarafından döndürülen süre ile aynıdır).
$ltimer => Bu identifier timer komutu tarafından başlatılan son zamanlayıcının kimliğini döndürür.
Örnek;
Kod:
/timerali 1 40 /msg #deneme deneme yapıyorum.
Kod:
//echo -a $ltimer => ali
olarak dönecektir.
$time => Bu identifier geçerli zamanı saat, dakika, saniye formatında döndürür.
Örnek;
Kod:
/echo -a $time => 12:04:55
olarak dönecektir.
$timer(N/name) => Bu identifier zamanlayıcı listesindeki N zamanlayıcısının kimliğini döndürür. N değeri içerisinde sayı veya timer adı yazabilme olanağı tanır ve timer ile birlikte çalışır.
Properties: com, time, reps, delay, type, secs, mmt, anysc, wid, cid, hwnd, pause, name
$timer(0) => aktif zamanlayıcıların sayısını döndürür
$timer(1) => 1. zamanlayıcının kimliğini döndürür
$timer(1).com => 1. zamanlayıcının komutunu döndürür
$timer(3).type =>3. zamanlayıcının çevrimiçi/çevrimdışı durumunu döndürür
$timer(3).secs => zamanlayıcının tetiklenmesine kalan saniye sayısını döndürür
$timer(3).mmt => zamanlayıcı bir multimedya zamanlayıcısı ise $true döndürür
$timer(3).anysc => /timer -i anahtarı belirtilmişse $true döndürür
Not: name özelliği, belirtilen parametreyi bir zamanlayıcı adı olarak kabul eder (eğer ad bir sayı ise) ve zamanlayıcı N pozisyonunu döndürür.
Şimdi aklımda olan timer ve $ltimer identifier kullanarak yapabileceğiniz şeyler için bir örnekte bulunacağım. Sunucu içerisinde yeni gelişmekte olan sunucuların en büyük problemleri sohbet ortamının yeterince oluşamamasıdır. Bunun için sunucu sahiplerine sağlanan bazı konuşma botları mevcut ama bunların diyalogları pek mantıklı sohbetler olmuyor benim gözlemlediğim kadarıyla diyalogları kendinizin ayarlayabileceği güzel bir sohbet oluşturma imkanınız sağlanabilir aslında $timer ve $ltimer kullanarak basit bir örnekle ifade edeceğim.
Örnek;
Kod:
Kod:
alias _aktf {
if ($timer(0) < 1) {
timerali 1 5 msg #deneme selam
}
if $regex($ltimer,/a[LI][iİ]/xiS) {
timerali2 1 10 msg #deneme selam ali nasılsın?
}
if $regex($ltimer,/a[LI][iİ]2/xiS) {
timerali3 1 15 msg #deneme iyiyim teşekkür ederim. sen nasılsın?
}
if $regex($ltimer,/a[LI][iİ]3/xiS) {
timerali4 1 20 msg #deneme bende iyiyim teşekkür ederim.
}
}
Kullanım;
/_aktf
Görünüm;
* Zaman ali aktif edildi
-
* Zaman ali2 aktif edildi
-
* Zaman ali3 aktif edildi
-
* Zaman ali4 aktif edildi
Text;
[13:01:44] <Mylife> selam ( ilk timer )
[13:01:49] <Mylife> selam ali nasılsın? ( 2. timer )
[13:01:54] <Mylife> iyiyim teşekkür ederim. sen nasılsın? ( 3. timer )
[13:01:59] <Mylife> bende iyiyim teşekkür ederim. ( 4. timer )
Bir çok identifier olduğundan dolayı her birisi üzerinde durma imkanım yoktu o yüzden bazılarının örneklendirmeler yaparak anlatmaya çalıştım. Aynı yöntemi kullanarak deneme yanılma yöntemi ile olayı daha iyi kavrayacağınızı düşünüyorum.
Time ve date eğitim konusunu bu şekilde bitireceğim. Umarım faydalı olmuştur. İyi forumlar dilerim.
Kaynak: mIRC ana klasör / mirc.html