For the complete documentation index, see llms.txt. This page is also available as Markdown.

Tarih ve saat ile çalışma

MaviBot aşağıdaki TARİH ve SAAT formatlarıyla çalışır:

tarihler için – "dd.mm.yyyy" saat için – "HH:MM"

Değişkenler

Tarih ve saatlerle çalışmak için aşağıdaki değişkenleri kullanabilirsiniz:

current_date - proje saat dilimine göre dd.mm.yyyy formatında geçerli tarih next_day - yarının tarihini dd.mm.yyyy formatında verir; mesaj planlamada kullanışlıdır current_time - proje saat dilimine göre hh:mm formatında geçerli saat weekday - haftanın günü sayı olarak: Pazartesi = 1, Salı = 2, vb.

Fonksiyon açıklamalarına hızlı erişim:

Saate nasıl saat eklenir

Tarih ve saatleri sayılar gibi mantıksal operatörler kullanarak karşılaştırabilirsiniz.

addYear() | addMonth() | addDays() | addMinutes()

Açıklama

addYear(date, years_to_add) - verilen tarihe belirtilen sayıda yıl ekleyerek yeni tarihi hesaplar, artık yılları dikkate alır. Yıl çıkarmak için negatif sayı kullanın.

addMonth(date, months_to_add) - verilen tarihe belirtilen sayıda ay ekleyerek yeni tarihi hesaplar, artık yılları dikkate alır. Ay çıkarmak için negatif sayı kullanın.

addDays(date, days_to_add) - tarihe belirtilen sayıda gün ekler. Gün çıkarmak için negatif sayı kullanın. Örnek: addDays(current_date, 20) veya addDays('20.08.2019', -99)

addMinutes(time, minutes_to_add) - saate belirtilen sayıda dakika ekler. Dakika çıkarmak için negatif sayı kullanın. Örnek: addMinutes(current_time, 20) veya addMinutes('20:08', -30)

'date' + days - tarihe belirtilen sayıda gün ekler

'time' + minutes - saate belirtilen sayıda dakika ekler

Örnekler

Bir tarihe belirli sayıda yıl eklemeye örnek:

Bir tarihe belirli sayıda ay eklemeye örnek:

Basit bir matematik işlemi kullanmaya örnek — bir tarihe gün, bir saate dakika ekleme:

Kopyalama için kod örneği

count = 2 date = '29.02.2020' x = addYear(date, count) y = addYear('31.12.2021', -1*count)

count = 10 date = '30.04.2019' x = addMonth(date, count) y = addMonth('31.12.2020', -1*count)

count = 10 date = '30.04.2019' x = addMonth(date, count) y = addMonth('31.12.2020', -1*count)

Saati nasıl karşılaştırılır

Açıklama

Tarih ve saatleri sayılar gibi mantıksal operatörler kullanarak karşılaştırabilirsiniz: büyüktür > , küçüktür < eşittir == , eşit değildir != büyük eşit >= , küçük eşit <=

Karşılaştırma koşulları mantıksal operatörler AND ve OR kullanılarak da birleştirilebilir.

Karşılaştırma koşulları "Değişken" alanına yapıştırın.

ok içinde karşılaştırma koşulları belirtirken gecikmeleri kullanmayı unutmayın.

Örnek

'01.09.2020' < '11.10.2020'

'11.10.2020' >= current_date

current_date == date

current_time >= '18:00'

current_time <= '21:00'

Zaman aralıkları nasıl ayarlanır

Açıklama

Zaman aralıklarıyla çalışmak için çok kullanışlı bir fonksiyon:

time_interval('start_time', 'end_time')

Fonksiyon mantıksal değer döndürür True veya False.

Bu fonksiyonu bloklarda koşul olarak "Karşılaştırılacak değişken" alanında veya IF() kullanarak bir hesaplayıcı içinde kullanın.

Bu fonksiyon, geçerli saatin belirtilen aralığa girip girmediğini kontrol etmenizi sağlar.

Örnek

time_interval('10:00','19:00') - 10:00 ile 19:00 arasındaki zaman aralığını kontrol eder

time_interval('19:00','07:00') - 19:00 ile 07:00 arasındaki zaman aralığını kontrol eder

time_interval('18.10.2021 10:00','25.10.2021 23:59:59') - farklı tarihler arasındaki zaman aralığını kontrol eder

time_interval('#{current_date} 10:00','#{date} 19:00') - değişkenler kullanılarak ayarlanan zaman aralığını kontrol eder

İlk örneğe daha yakından bakalım. Fonksiyon şu şekilde okunur:

Kullanıcı 10:00 ile 19:00 arasındaki dönemde "time" kelimesini içeren bir mesaj gönderirse, koşul true döndürür; aksi halde false döndürür.

Bu, müşterinin isteğinin saatine göre farklı yanıtlar oluşturmanıza olanak tanır. Örneğin, geçerli saat 10:00 ile 19:00 arasındaysa müşteri şunu alır: "Bir yönetici kısa süre içinde size cevap verecek."

Diğer herhangi bir zamanda ise şunu alır: "Yönetici şu anda müsait değil; 10:00 ile başlayan çalışma saatleri içinde size cevap verilecektir."

Hesaplayıcı alanına şunu girin:

response = if(time_interval('10:00','19:00'), "Bir yönetici kısa süre içinde size cevap verecek", "Yönetici şu anda müsait değil; 10:00 ile başlayan çalışma saatleri içinde size cevap verilecektir")

"Mesaj" alanına şunu girin: #{response}

Kopyalama için kod örneği

response = if(time_interval('10:00','19:00'), "Bir yönetici kısa süre içinde size cevap verecek", "Yönetici şu anda müsait değil; 10:00 ile başlayan çalışma saatleri içinde size cevap verilecektir")

D gününe kadar ne kadar süre kaldığını nasıl öğrenirsiniz

Örnek

D gününe kadar ne kadar süre kaldığını hesaplamak için:

Geri sayım yapılacak hedef anın tarihini ve saatini belirleyin.

date_D = 10.10.2021 time_D = 12:00

Bunu timestamp formatına dönüştürün:

timestampD = convert_datetime("#{date_D} #{time_D}", "%d.%m.%Y %H:%M", "%s")

Geçerli zamanı timestamp formatına dönüştürün:

timestamp0 = #{timestamp}

Elde edilen değerleri tam sayılara yuvarlayın:

timeD = int(#{timestampD}) time0 = int(#{timestamp0})

Saniye cinsinden farkı hesaplayın:

time = timeD - time0

Bir gündeki saniye sayısına bölün ve sonucu yuvarlayın:

full_days = time/86400

days = int(#{full_days})

Kısmi günden kalan saniye sayısını hesaplayın:

c = days*86400

d = time - c

Bunun kaç saate karşılık geldiğini hesaplayın ve değeri yuvarlayın:

e = d/3600 hours = int(e)

Kısmi saatlerden kalan saniye sayısını hesaplayın:

g = hours*3600

h = d - g

Bunu dakikaya çevirin ve değeri yuvarlayın:

i = h/60

minutes = int(i)

Kalan saniye sayısını hesaplayın:

k = minutes*60

seconds = h - k

Ve süreyi "Mesaj metni" alanını bulun:

Başlangıca kalan süre: #{days} gün #{hours} saat #{minutes} dakika ve #{seconds} saniye

İçine eklemek için kod burada: "Hesaplayıcı" alanını bulun:

Düğmenin Hesaplayıcıda dönüştürme yapmadan tarih ve saatleri çıkarmayı da destekler. Örneğin:

'11.12.2021' - '8.12.2021' 3 döndürür (gün)

'11:12' - '3:45' 447 döndürür (dakika)

Bir sonraki doğum günü nasıl bulunur

Açıklama

Botun doğum günü tebrikleri göndermesi için şu fonksiyonu kullanabilirsiniz:

birthdate(date) - kişinin doğum tarihine göre yaklaşan bir sonraki doğum gününü döndürür: reminder = birthdate('28.04.1994')

Belirli bir haftanın gününün tarihi nasıl alınır

Açıklama

Belirli haftanın günlerinde yinelenen gönderimleriniz varsa, gönderimi planlamak için bir haftanın gününün tarihini alabilirsiniz.

weekday_date(weekday, b) - belirtilen en yakın haftanın gününün tarihini döndürür. Şunları alır iki parametre:

İlk parametre, bulunacak haftanın günü numarasıdır (1'den 7'ye kadar, burada 1 = Pazartesi, 7 = Pazar).

İkinci parametre şunu belirtir: belirtilen haftanın günü bugünse bugünün tarihini döndürmek. Bu parametre isteğe bağlıdır ve varsayılan olarak False'tur.

İkinci parametrenin nasıl çalıştığını anlamak için bir örneğe bakalım:

Bir mesajın Perşembe günü gönderilmesini planlamak istiyorsunuz.

Peki ya müşteri tam Perşembe günü kaydolursa?

Mesaj bu Perşembe mi yoksa bir sonraki Perşembe mi gönderilmeli?

İkinci parametrenin False olarak ayarlanması, mesajın yalnızca bir sonraki Perşembe günü gönderileceği anlamına gelir (bugün atlanır).

İkinci parametrenin True olarak ayarlanması, bugün Perşembe ise mesajın bu Perşembe gönderileceği anlamına gelir (kayıt günü dahil).

Bizim örneğimizde kullanıcı 13.02.2025 Perşembe günü kaydoluyor ve mesajı bir sonraki Perşembe göndermek istiyoruz. Bu nedenle döndürülen değer "20.02.2025" olacaktır.

Örneğin, weekday_date(4) '20.02.2025' döndürür.

Geçerli günün yalnızca belirli bir saate kadar sayılmasını istiyorsanız, bu yapıyı kullanabilirsiniz:

weekday_date(4, current_time < '13:00'); burada koşul, ihtiyaç duyduğunuz herhangi bir koşulla değiştirilebilir.

Fonksiyonun nasıl kullanılacağına dair bir örnek:

Bir bağlantının "Gönderim tarihi" alanında fonksiyonun kullanımına örnek

Ayın belirli bir gününün tarihi nasıl alınır

Açıklama

Ayın belirli bir gününde yinelenen işlemleriniz varsa, gönderimi planlamak için o güne en yakın tarihi alabilirsiniz.

month_date(date, b) - belirtilen gün numarası için ayın en yakın tarihini döndürür. Şunları alır iki parametre:

date - bulunacak ayın gün numarası (1'den 31'e kadar)

b - isteğe bağlı parametre; belirtilen günle eşleşiyorsa bugünün tarihini döndürüp döndürmeyeceğini belirtir. Varsayılanı False'tur.

31 gönderirseniz ama geçerli ayda yalnızca 30 gün varsa, fonksiyon ayın son gününü (ör. 30.) döndürür.

Örneğin:

Bugün 05.04.2022 ise ve t = month_date(1) çağırırsanız, sonuç 01.05.2022 olur - bugünden sonraki en yakın ayın 1'i.

Geçerli saatin çalışma saatleri içinde olup olmadığı nasıl kontrol edilir

Açıklama

Örneğin, şirket 09:00 ile 18:00 arasında çalışıyor ve cumartesi ile pazar günleri kapalı. Kontrolleri adım adım oluşturalım:

  1. Saatin çalışma saatleri içinde olup olmadığını kontrol edin: current_time >= '9:00' VE current_time <= '18:00'

  2. Saatin çalışma saatleri dışında olup olmadığını kontrol edin: current_time < '9:00' VEYA current_time > '18:00'

  3. Bugünün çalışma günü olup olmadığını kontrol edin (cumartesi veya pazar değil): weekday != 6 AND weekday != 7

  4. Çalışma saatleri içinde yazma için koşulları birleştirin: current_time >= '9:00' VE current_time <= '18:00' VE weekday != 6 VE weekday != 7

  5. Çalışma saatleri dışında yazma için koşulları birleştirin: current_time < '9:00' VEYA current_time > '18:00' VEYA weekday == 6 VEYA weekday == 7

Örnek

Tarih ve saati nasıl dönüştürürsünüz

Örnek

Kullanılan tarih-saat formatı sistemler arasında değişir ve entegre kaynaklardan biri MaviBot'un tanımadığı bir formatta saat döndürebilir. Bunu dönüştürmeniz gerekir.

convert_datetime(date, fin, f_out) - tarih ve saati dönüştürür

Üç parametre vardır:

  • Girdi tarih dizgesi

  • Girdi format dizgesi

  • Çıktı format dizgesi

Örnek: convert_datetime("2011-11-03", "%Y-%m-%d", "%Y/%m/%d") на выходе будет 2011/11/03

Bu fonksiyon gelen tarihi bir timestamp.

#{current_date} #{current_time} - "06.01.2025 11:45" değerine dönüştürür — saniye veya mikro saniye bilgisi olmadığından, oluşan timestamp'in ondalık kısmı sıfır olur.

Örneğin: 1736144700.000000

Ondalık noktadan sonra milisaniyeleri eklerseniz,

convert_datetime("06.01.2025 19:26:35.123456", "%d.%m.%Y %H:%M:%S.%f", "%s.%f")

sonuç şu olur: 1736166395.123456

get_datetime(format) - geçerli saati belirli bir formatta alma fonksiyonu. Fonksiyon bir parametre alır — istenen çıktı formatını belirten bir dize.

Önemli! Fonksiyonun yanıtı (Pazartesi, Salı vb.) olacaktır. Örnek: get_datetime("%A") çıktısı Wednesday olacaktır

Fonksiyon içinde tırnak işaretleriyle çevrili dizeler olarak belirtilen format dizgesi parametrelerinin açıklaması:

%a

Haftanın gününün kısa adı

Paz, Pts ...

%A

Haftanın gününün tam adı

Pazartesi, Salı, …, Pazar

%w

Haftanın günü, 0 Pazar ve 6 Cumartesi olacak şekilde ondalık sayı olarak

0, 1, …, 6

%d

Ayın günü, başında sıfır olan ondalık sayı olarak

01, 02, …, 31

%b

Ayın kısa adı

Oca, Şub, …, Ara

%B

Ayın tam adı

Ocak, Şubat, Mart, vb.

%m

Ay, başında sıfır olan ondalık sayı olarak

01, 02, …, 12

%y

İki basamaklı yıl numarası olarak yıl

00, 01, …, 99

%Y

Dört basamaklı yıl numarası olarak yıl

0001, 0002, …, 2013, 2014, …, 9998, 9999

%H

Saat (24 saatlik saat) iki basamaklı, başında sıfır olacak şekilde

00, 01, …, 23

%I

Saat (12 saatlik saat) iki basamaklı, başında sıfır olacak şekilde

01, 02, …, 12

%p

AM veya PM belirteci

AM, PM (en_US);am, pm (de_DE)

%M

Dakikalar, başında sıfır olan iki basamaklı ondalık sayı olarak

00, 01, …, 59

%S

Saniyeler, başında sıfır olan iki basamaklı ondalık sayı olarak

00, 01, …, 59

%f

Mikrosaniyeler, başında sıfır olan altı basamaklı sayı olarak

000000, 000001, …, 999999

%z

UTC farkı şu biçimde ±SSDD[SS[.ffffff]] (nesne naive ise boş dize).

(boş), +0000, -0400, +1030, +063415, -030712.345216

%Z

Saat dilimi adı (nesne naive ise boş dize).

(boş), UTC, GMT

%j

Yılın günü, başında sıfır olan üç basamaklı sayı olarak

001, 002, …, 366

%U

Yılın hafta numarası (haftanın ilk günü olarak Pazar ile) başında sıfır olan ondalık sayı olarak. Yeni yılın ilk Pazarı'ndan önceki tüm günler hafta sıfır olarak kabul edilir.

00, 01, …, 53

%W

Yılın hafta numarası (haftanın ilk günü olarak Pazartesi ile) ondalık sayı olarak. Yeni yılın ilk Pazartesi'sinden önceki tüm günler hafta sıfır olarak kabul edilir.

00, 01, …, 53

%%

Sembol '%'

%

%s

timestamp

1607926200

Diğer tüm semboller kendilerini temsil eder.

Geçerli zaman damgasını şu şekilde alabilirsiniz: convert_datetime("#{current_date} #{current_time}", "%d.%m.%Y %H:%M", "%s")

Geçerli tarihi "gg ay adı" formatında göster

Örnek

Tarihi "gg ay adı" formatında göstermek için şu fonksiyonu kullanın current_date_eng().

Bu tarihe belirli sayıda gün eklemeniz gerekiyorsa, fonksiyonda gerekli gün sayısını parametre olarak belirtmelisiniz.

Örneğin, bugün tarih 3 Nisan ise, fonksiyon şunu döndürür:

current_date_eng() - 3 Nisan

current_date_eng(2) - 5 Nisan

current_date_eng(-2) - 1 Nisan

Son güncelleme