Time Modeling in Softanza using stzTimeLine

32 views
Skip to first unread message

Mansour Ayouni

unread,
Oct 8, 2025, 10:13:44 PMOct 8
to The Ring Programming Language

Hello All,

Most time-handling libraries across ecosystems (
Python's datetime, Java's java.time, JavaScript's Luxon, etc.) treat time as scalar values to be parsed, formatted, or mathematically manipulated.

Softanza's stzTimeLine goes further: it treats time as a structured, visual, and semantic domain —  a workspace where events, periods, constraints, and analytics coexist in a single, self-describing object.

See it in action here in Ring NodePad:

image.png

And read about it for a complete guide of the feature, with many practical examples and ascii-based visualisations:

https://github.com/mayouni/stzlib/blob/main/libraries/stzlib/base/doc/narrations/stztimeline-managing-temporal-structures-narration.md

PS: stzTimeLine is a member iof the Time Programming module in Softanza containing also stzDate, stzTime, stzDateTime, and stzDuration classes.

All the best,

Mansour

Bert Mariani

unread,
Oct 9, 2025, 11:13:16 AMOct 9
to The Ring Programming Language
Hello Mansour

# =================================
# ---------- Time / Calendar ----------
func JulianDay(y,m,d)
    yy = y
    mm = m
    if mm <= 2
        yy = yy - 1
        mm = mm + 12
    end
    A = floor(yy/100)
    B = 2 - A + floor(A/4)
    jd = floor(365.25*(yy + 4716)) + floor(30.6001*(mm + 1)) + d + B - 1524.5
    return jd
end

# =================================

Mansour Ayouni

unread,
Oct 9, 2025, 2:23:08 PMOct 9
to Bert Mariani, The Ring Programming Language
Hello Bert,

Thanks for catching that! It was the missing piece in the stzDate class (built on Qt’s QDate), and it’s now been added.

image.png

You can see all what stzDate does in this article:

PS: stzDate is a member iof the Time Programming module in Softanza containing also stzTimestzDateTime, stzDuration, and stzTimeLine classes. And I'm working to add a stzCalendar class to the team.

All the best,
Mansour

--

---
You received this message because you are subscribed to the Google Groups "The Ring Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ring-lang+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ring-lang/84773e68-e0e7-49d0-b90e-3a38e4868e0bn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages