İnsanlık tarihi boyunca zaman, farklı uygarlıklar tarafından farklı biçimlerde ölçülmüş ve anlamlandırılmıştır. Bugün dünya genelinde yaygın olarak kullanılan Gregoryen takvim, her ne kadar pratik bir standart sunsa da astronomik gerçeklikten belirli ölçüde kopuktur; aylar eşit uzunlukta değildir, haftalar yıl içinde sabit noktalara oturmaz ve mevsim başlangıçları takvim üzerinde kayar. İşte tam bu boşluktan hareketle tasarlanan Kaya Takvimi, Dünya'nın Güneş etrafındaki gerçek hareketi ile Ay'ın evreleri üzerine kurulu, astronomik açıdan tutarlı ve alternatif bir zaman ölçüm sistemidir. Takvim, Python ile yazılmış ve NASA'nın DE440 gezegen efemeris veritabanını kullanan Skyfield kütüphanesi aracılığıyla hesaplama yapar.
Astronomik Temeller
Tropik Yıl ve Referans Noktası (Epoch)
Kaya Takvimi'nin sıfır noktası, 20 Mart 2000 tarihinde saat 07:35 UTC'de gerçekleşen ilkbahar ekinoksudur. Bu an, Dünya'nın kuzey yarımküresinde gece ile gündüzün eşitlendiği, Güneş'in göksel ekvatordan geçtiği astronomik bir sıfır noktasıdır. Tropik yıl — yani Dünya'nın Güneş etrafında bir tam tur atması için gereken süre — sabit kabul edilmez; sistemde 365.2421896698 gün olarak kullanılmaktadır. Bu değer, Gregoryen takvimin kullandığı yaklaşık 365.2425 günlük ortalamadan daha hassas olmakla birlikte, tropik yılın gerçekte her yıl çok küçük miktarlarda değiştiğini de belirtmek gerekir.
Güneş ve Ay Boylamları
Takvimin en özgün yanlarından biri, hem ayları hem de Ay evrelerini gerçek anlık astronomik pozisyonlardan hesaplamasıdır. Bu amaçla NASA'nın yüksek hassasiyetli DE440 efemerisi ve Skyfield kütüphanesi kullanılmaktadır.
Güneş'in ekliptik boylamı (Ls): Güneş'in, Dünya merkezli bir gözlemciye göre ekliptik düzlemdeki açısal konumunu ifade eder. Ekinoks noktasında 0°'dir; yazın 90°'ye, sonbaharda 180°'ye, kışın 270°'ye ulaşır. Kaya Takvimi'nde aylar, tam da bu açıya göre belirlenir: Güneş 0–29.9° arasındayken "Filiz Ayı", 30–59.9° arasındayken "Çiçek Ayı" ve bu biçimde devam eder.
Ay'ın ekliptik boylamı (Lm): Ay'ın aynı koordinat sistemindeki açısal konumunu verir. Güneş ile Ay boylamları arasındaki fark, Ay'ın evresini belirler.
Ay Sistemi: 12 Mevsimsel Ay
Kaya Takvimi'nde bir yıl, Güneş'in ekliptik boylamına göre eşit büyüklükte 12 bölüme ayrılmıştır. Her bölüm 30°'lik bir yay kapsar ve doğrudan mevsimsel bir isme sahiptir:
| Boylam Aralığı | Ay Adı | Mevsimsel Çağrışım |
|---|---|---|
| 0° – 29° | Filiz | İlkbaharın başlangıcı |
| 30° – 59° | Çiçek | Çiçeklenme dönemi |
| 60° – 89° | Yeşeren | Yapraklanma |
| 90° – 119° | Güneş | Yaz başlangıcı |
| 120° – 149° | Köz | Yaz ortası, sıcak |
| 150° – 179° | Hasat | Yaz sonu, ürün toplama |
| 180° – 209° | Rüzgar | Sonbahar başlangıcı |
| 210° – 239° | Sarı | Yaprak dökümü |
| 240° – 269° | Yağmur | Yağışlı dönem |
| 270° – 299° | Ayaz | Kış başlangıcı |
| 300° – 329° | Kar | Kışın en sert dönemi |
| 330° – 359° | Uykuda | Kış sonu, bekleme |
Bu sistem, takvim ile doğa arasında doğrudan bir köprü kurmaktadır. Gregoryen takvimde ayların doğayla ilişkisi büyük ölçüde tesadüfî ya da tarihsel kökenlidir; Kaya Takvimi'nde ise her ay adı, Güneş'in gökyüzündeki gerçek konumuna karşılık gelen bir mevsimsel deneyimi anlatır.
Hafta Sistemi: 6 Günlük Döngü
Kaya Takvimi, evrensel olarak kabul görmüş 7 günlük hafta yerine 6 günlük bir hafta döngüsü benimser. Günler Gün-A'dan Gün-F'ye kadar adlandırılmıştır. Bu tercih, yedi sayısının tarihsel ve dinî kökenlerine yapılan bilinçli bir karşı duruş olarak okunabilir; çünkü yedi günlük hafta, gezegen-tanrı geleneğinden devşirilmiş kültürel bir uzlaşıdır ve astronomik bir zorunluluğu yoktur.
6 günlük döngüde güne, yıl içindeki toplam gün sayısının 6'ya bölümünden kalan belirlenir. Bu hesaplama, haftanın her yıl aynı tarihle hizalanmasını sağlamaz; ancak gün döngüsü kesintisiz ve sabit biçimde akar.
Ay Evreleri: Gerçek Zamanlı Hesaplama
Kaya Takvimi'nin bir diğer önemli unsuru, Ay evrelerinin gerçek anlık hesaplamaya dayanmasıdır. Ay'ın Güneş'e göre açısal konumu (Lm − Ls) 8 eşit dilime bölünerek her dilime karşılık gelen evre adı ve sembolü belirlenmektedir:
- 🌑 Yeniay — Fark 337.5°–22.5° (Ay, Güneş ile hizalı)
- 🌒 Hilal — Fark 22.5°–67.5°
- 🌓 İlk Dördün — Fark 67.5°–112.5°
- 🌔 Şişkin Ay — Fark 112.5°–157.5°
- 🌕 Dolunay — Fark 157.5°–202.5° (Ay, Güneş'in tam karşısında)
- 🌖 Küçülen Ay — Fark 202.5°–247.5°
- 🌗 Son Dördün — Fark 247.5°–292.5°
- 🌘 Son Hilal — Fark 292.5°–337.5°
Bu hesaplama, yaklaşık formüllere değil NASA'nın hassas efemerisi aracılığıyla elde edilen gerçek gök cismi konumlarına dayandığından son derece doğrudur.
Sivil Kaydırma Mekanizması
Sistemin ilginç bir teknik detayı, astronomik sıfır noktası ile sivil gün başlangıcı arasındaki dengeleme mekanizmasıdır. Ekinoks referansı saat 07:35 UTC'de alınmıştır; oysa sivil günlük yaşamda gece yarısı (00:00) gün değişimi kabul edilir. Bu farkı kapatmak için toplam gün sayısına 7.5833 / 24 saatlik bir kaydırma eklenir. Böylece "Kaya günü", astronomik epoch'a değil gece yarısına göre hizalanmış olur.
Çıktı Formatı ve Okunabilirlik
Sistem, herhangi bir Gregoryen tarih-saat için şu biçimde bir çıktı üretir:

Bu satırda sırasıyla şunlar yer alır: yıl içindeki gün numarası, ay adı, hafta günü, Kaya yılı, Ay evresi, Güneş boylamı, Ay boylamı ve Türkiye saatine göre saat.
Felsefi Arka Plan ve Değerlendirme
Kaya Takvimi, yalnızca bir hesap sistemi değil; doğayla yeniden bağ kurma çabasının da bir ifadesidir. Gregoryen takvim, tarihsel, siyasi ve dinî uzlaşıların ürünüdür. Kaya Takvimi ise zamana doğrudan gökyüzünden bakmayı önerir: Hangi aydayız sorusunun yanıtı, bürokratik bir karara değil Güneş'in o an bulunduğu konuma dayanır.
Öte yandan, böyle bir sistemin pratik kullanımı ciddi zorluklarla karşılaşır. Takvim aylarının Gregoryen tarihlere göre kayan yapısı, sosyal koordinasyonu güçleştirir. 6 günlük hafta, küresel iş ve toplumsal döngülerle uyumsuzluk yaratır. Ay isimlerinin Kuzey Yarımküre'nin ılıman iklim kuşağına özgü doğa imgelerine dayanması, evrensel bir kabul için kültürel bir sınır oluşturur.
Bununla birlikte, Kaya Takvimi bir düşünce deneyi ve yaratıcı bir programlama projesi olarak değerlendirildiğinde, hem astronomik hesaplama hem de takvim tasarımı açısından son derece tutarlı ve özenle kurgulanmış bir yapı sergilemektedir. NASA veritabanlarının doğrudan kullanımı, sisteme yüksek bir astronomik güvenilirlik kazandırmakta; Python ile yazılmış modüler yapı da geliştirmeye açık bir iskelet sunmaktadır.
Simülasyon Kodu
=========================================================
📦 GEREKLİ (ilk çalıştırmada)
=========================================================
!pip install skyfield
=========================================================
📚 IMPORT
=========================================================
import math
from datetime import datetime, timezone, timedelta
from skyfield.api import load
from skyfield.framelib import ecliptic_frame
=========================================================
🌍 TÜRKİYE SAATİ
=========================================================
TR = timezone(timedelta(hours=3))
=========================================================
🌌 SKYFIELD (NASA)
=========================================================
ts = load.timescale()
eph = load('de440.bsp')
earth = eph['earth']
sun = eph['sun']
moon = eph['moon']
=========================================================
🌍 EPOCH (Ekinoks referansı)
=========================================================
EPOCH = datetime(2000, 3, 20, 7, 35, 0, tzinfo=timezone.utc)
BASE_TROPICAL_YEAR = 365.2421896698
=========================================================
🌿 KAYA AYLARI
=========================================================
KAYA_MONTHS = [
"Filiz", "Çiçek", "Yeşeren",
"Güneş", "Köz", "Hasat",
"Rüzgar", "Sarı", "Yağmur",
"Ayaz", "Kar", "Uykuda"
]
=========================================================
📆 6 GÜNLÜK HAFTA
=========================================================
WEEK = ["Gün-A", "Gün-B", "Gün-C", "Gün-D", "Gün-E", "Gün-F"]
def six_day_week(day):
return WEEK[day % 6]
=========================================================
🌞🌙 GERÇEK BOYLAMLAR (NASA)
=========================================================
def get_longitudes(dt):
dt_utc = dt.astimezone(timezone.utc)
t = ts.from_datetime(dt_utc)
e = earth.at(t)
sun_pos = e.observe(sun).apparent().frame_latlon(ecliptic_frame)
Ls = sun_pos[1].degrees % 360
moon_pos = e.observe(moon).apparent().frame_latlon(ecliptic_frame)
Lm = moon_pos[1].degrees % 360
return Ls, Lm
=========================================================
🌗 AY EVRESİ
=========================================================
def moon_phase(dt):
Ls, Lm = get_longitudes(dt)
phase = (Lm - Ls) % 360
if phase < 22.5 or phase >= 337.5:
return "🌑 Yeniay"
elif phase < 67.5:
return "🌒 Hilal"
elif phase < 112.5:
return "🌓 İlkdördün"
elif phase < 157.5:
return "🌔 Şişkin Ay"
elif phase < 202.5:
return "🌕 Dolunay"
elif phase < 247.5:
return "🌖 Küçülen Ay"
elif phase < 292.5:
return "🌗 Sondördün"
else:
return "🌘 Son Hilal"
=========================================================
⏳ GÜN HESABI
=========================================================
def to_days(dt):
dt_utc = dt.astimezone(timezone.utc)
return (dt_utc - EPOCH).total_seconds() / 86400.0
=========================================================
🧍 CİVİL BİLEŞENLER (SENİN DÜZELTMEYLE)
=========================================================
def get_civil_components(dt):
Astronomik gün
days = to_days(dt)
🌙 Sivil kaydırma (07:35 → gece yarısı)
civil_days = days + (7.5833 / 24.0)
year = int(days / BASE_TROPICAL_YEAR)
day_int = int(civil_days % BASE_TROPICAL_YEAR)
return {
"year": year,
"day": day_int + 1,
"week": six_day_week(day_int),
"time": dt.astimezone(TR).strftime("%H:%M")
}
=========================================================
📆 KAYA TAKVİMİ
=========================================================
def gregorian_to_kaya(dt):
Ls, Lm = get_longitudes(dt)
moon = moon_phase(dt)
c = get_civil_components(dt)
month = KAYA_MONTHS[int(Ls // 30)]
return {
"year": c["year"],
"month": month,
"day": c["day"],
"weekday": c["week"],
"moon_phase": moon,
"solar_longitude": round(Ls, 6),
"lunar_longitude": round(Lm, 6),
"formatted": (
f"Kaya Takvimi: {c['day']} {month} ({c['week']}) {c['year']} | "
f"{moon} | ☀️ {Ls:.3f}° | 🌙 {Lm:.3f}° | Saat {c['time']}"
)
}
=========================================================
📅 TAM FORMAT
=========================================================
def get_full_date(dt):
return gregorian_to_kaya(dt)["formatted"]
=========================================================
🧪 TEST
=========================================================
if __name__ == "__main__":
now = datetime.now(TR)
print(get_full_date(now))
Sonuç
Kaya Takvimi, zamanı ölçmenin tek bir doğru yolu olmadığını hatırlatan, gökyüzüyle diyaloğa dayanan özgün bir sistemdir. Güneş boylamına göre belirlenen mevsimsel aylar, anlık astronomik hesaplamaya dayalı Ay evreleri, 6 günlük hafta döngüsü ve tropik yıl temelli yıl sayımıyla alışılmış zaman algısına meydan okur. Koda yerleştirilen her tercih — epoch seçiminden ay adlarına, hafta uzunluğundan sivil kaydırma mekanizmasına kadar — bir felsefi tutumun yansımasıdır: Zamanı insanın değil, evrenin ritmiyle ölçmek.