Skip to main content

santali_calendar 2.1.0 copy "santali_calendar: ^2.1.0" to clipboard
santali_calendar: ^2.1.0 copied to clipboard

A lunisolar calendar for Santali people based on astronomical calculations.

2.1.0 #

Seasons #

  • Added SantaliSeason enum in lib/constants/seasons.dart (shishira, basanta, grishma, barsha, sarata, hemanta)
  • Added SantaliSeasonDefinition in lib/models/santali_season.dart with id, name (Ol Chiki), roman, english, months (0-based month indices), description?, and containsMonth()
  • Added the santaliSeasons definitions list (6 entries, year order), plus getSeasonDefinition(season), seasonOfMonthIndex(monthIndex), and the derived monthSeasons map
  • Added getSeason([monthIndex]), getSeasons(), seasonDefinition(season), getSeasonFromDate(date), and getSeasonMonths(year, season) to SantaliCalendar
  • Added season to SantaliCalendarMonth and SantaliDate, and seasons to SantaliCalendarYear
  • Documented seasons in the README (names, month coverage, and API)

Bug Fixes #

  • Fixed Ol Chiki name typo for Thursday (ᱥᱟᱹᱨᱤ → ᱥᱟᱹᱨᱫᱤ)

2.0.4 #

Features #

  • Added isFirstMoonDay field to SantaliDate and SantaliCalendarDay (true when day == 1)
  • Added FixedSantaliFestivalRule and FixedSantaliRule for festivals on fixed days in Santali months
  • Added Veer Birsha Munda Janam Maha festival (November 15, Gregorian)

Bug Fixes #

  • Fixed isAmavasya detection: now determined by last day of month (day == month.totalDays) instead of new moon date matching
  • Fixed Mag Bonga rule: changed from moon-relative to fixed Santali day (day 5 of Mag)
  • Fixed Ol Chiki name typo in Guru Gomke Gur Maha

2.0.3 #

Bug Fixes #

  • Fixed previous month date issue

2.0.2 #

Bug Fixes #

  • Fixed SantaliCalendarDay.weekDay labels shifted one day back (weekDays[date.weekday - 1] → weekDays[date.weekday % 7], matching the Sunday-first weekDays order)

2.0.1 #

Documentation #

  • Added dartdoc comments to the full SantaliCalendar public API
  • Added runnable example/santali_calendar_example.dart

2.0.0 #

Astronomical Calendar Engine #

  • SantaliCalendar now uses SantaliMoonCalendar for accurate moon-phase-based month calculations
  • Month start/end dates are determined by Chandradarshan (first visible crescent) instead of fixed 29/30-day arithmetic
  • Santali days start at 17:00 IST (11:30 UTC)
  • getDate() uses raw timestamps with proportional day division (floor((targetMs - startMs) / dayDuration) + 1), matching the reference implementation
  • Added isPurnima, isAmavasya, isLeapMonth fields to SantaliDate
  • Added weekDay field to SantaliDate (int, DateTime.weekday: Monday = 1 ... Sunday = 7)
  • Added fullMoonDate, newMoonDate, isLeapMonth fields to SantaliMonth
  • Month results are cached per year (buildMonths)

Month Identity #

  • Added SantaliMonthId enum (mag, fagun, chaat, baisak, jhent, ashal, saan, bhador, dasany, sohray, aghan, push, sarcha)
  • Added required id field to SantaliMonth, SantaliMonthDefinition, and SantaliCalendarMonth

Festivals #

  • Added festival system in lib/src/festivals/ (types.dart, data.dart, festivals.dart)
  • Added SantaliFestivalRule (sealed), FixedGregorianFestivalRule, MoonRelativeFestivalRule, MoonPhase, SantaliFestivalType, SantaliFestivalDefinition, SantaliFestival
  • Added SantaliCalendar.getFestivals(year) resolving 18 festivals (moon-relative and fixed Gregorian), sorted by date

New SantaliCalendar Methods #

  • getCalendarToday() — Santali date of today's calendar-grid cell (evaluates the day starting 17:00 IST on today's Gregorian date)
  • isLeapYear(year) — Metonic-cycle leap year check
  • getDaysInMonth(year, monthIndex) — days in a Santali month
  • getMonthIndex(date) — Santali month index for a Gregorian instant
  • getCalendarMonthIndex(date) — Santali month index for a Gregorian calendar cell
  • getMonthFromDate(date) — calendar month for any Gregorian date

Model Restructure #

  • Moved SantaliMonth, SantaliDate, SantaliMonthDefinition to lib/src/models/
  • astronomy/moon.dart now contains only SantaliMoonCalendar and MonthAstronomy
  • Removed lib/src/constants/months.dart (definitions now in models)

Breaking Changes #

  • SantaliMonth.english renamed to SantaliMonth.roman
  • SantaliDate.gregorianDate renamed to SantaliDate.date (now the raw UTC timestamp of the queried instant)
  • SantaliMonth now requires id (SantaliMonthId)
  • SantaliDate.monthEnglish / monthStartDate / monthEndDate removed — use date.month.roman, date.month.startDate, date.month.endDate
  • SantaliDate.weekDay is int (DateTime.weekday), not SantaliWeekDay
  • SantaliCalendar constructor takes no arguments (anchorDate fixed, anchorYear removed)
  • SantaliCalendarMonth extends astronomy SantaliMonth with all its fields

1.0.4 #

  • Added weekDay as SantaliWeekDay field to SantaliCalendarDay for direct weekday access

1.0.3 #

  • Simplified SantaliCalendarMonth to a standalone class (no longer extends SantaliMonth)
  • Replaced Map<SantaliWeekDay, List<SantaliCalendarDay?>> calendar with flat List<SantaliCalendarDay?> days
  • Added weekDay field to SantaliCalendarDay for direct weekday access
  • Added weekDays list constant for ordered weekday access
  • Removed empty build_calendar_month.dart utility file

Breaking Changes #

  • SantaliCalendarMonth no longer extends SantaliMonth — use .name, .english, .startDate, .endDate directly
  • SantaliCalendarMonth.calendar map removed — iterate .days list instead and use cell.weekDay for weekday info

1.0.2 #

  • Fixed calendar grid rendering issue

1.0.1 #

  • Added SantaliCalendarMonth model with calendar grid for UI rendering
  • Added SantaliCalendarDay model with day, date, isToday, isCurrentMonth
  • Added getMonthByDate() to get calendar month for any Gregorian date
  • Added getCurrentMonth() to get current month with calendar grid
  • Added buildCalendarMonth() to build calendar grid for a month
  • Added currentMonthIndex field to SantaliCalendarYear

Breaking Changes #

  • getMonth() now returns SantaliCalendarMonth instead of SantaliMonth
  • SantaliCalendarYear.months is now List<SantaliCalendarMonth> instead of List<SantaliMonth>
  • SantaliCalendarYear requires new currentMonthIndex field

1.0.0 #

  • Initial version.
0
likes
160
points
445
downloads

Documentation

Documentation
API reference

Publisher

verified publisherwesantal.org

Weekly Downloads

A lunisolar calendar for Santali people based on astronomical calculations.

Homepage
Repository (GitHub)
View/report issues

Topics

#santali #calendar #ol-chiki #date #indigenous-calendar

License

MIT (license)

More

Packages that depend on santali_calendar