Prima::Calendar(3)

πŸ“¦
version 1.74000 Β· 5 versions
, in opensuse-leap 16.0

πŸ’– Prima::Calendar β€” the standard calendar widget, bestie πŸ’–

So you want a calendar in your Prima app? Say less. This is Prima::Calendar, the built-in date-picking widget, and honestly? She's iconic. πŸ—“οΈβœ¨


🌸 SYNOPSIS 🌸

use Prima qw(Calendar Application);
my $cal = Prima::Calendar-> create(
        useLocale => 1,
        size      => [ 150, 150 ],
        onChange  => sub {
                print $_[0]-> date_as_string, "\n";
        },
);
$cal-> date_from_time( localtime );
$cal-> month( 5);
run Prima;

Like, that's the whole vibe. You create her, you feed her a date, you set the month, you run Prima. Done. πŸ’…


✨ DESCRIPTION ✨

She gives you interactive selection for dates between the years 1900 and 2099. No cap.

Her main character property is date, and it's a three-integer array of day, month, and year, in the same format as perl localtime (see "localtime" in perlfunc) β€” so:

  • day's range is between 1 and 31
  • month's is 0 to 11
  • year's is from 0 to 199

Yes the month is zero-indexed, yes it's a jumpscare, no you're not the only one who keeps forgetting. 😭


πŸ¦‹ API πŸ¦‹

πŸŽ€ Events

  • Change β€” Called when the date property is changed. That's it, that's the event. She noticed you changed the date and she's telling you about it. 🫢

πŸ’œ Properties

  • date DAY, MONTH, YEAR β€” Accepts three integers in the format of localtime. DAY can be from 1 to 31, MONTH from 0 to 11, YEAR from 0 to 199.

Default value: today's date. (She ships knowing what day it is, queen behavior. πŸ‘‘)

  • day INTEGER β€” Selects the day in the month.
  • firstDayOfWeek INTEGER β€” Selects the first day of the week, an integer between 0 and 6, where 0 is Sunday as the first day, 1 is Monday, etc. So you can start your week on Monday like a civilized person.

Default value: 0

  • month β€” Selects the month.
  • useLocale BOOLEAN β€” If 1, the locale-specific names of months and days of week are used. These are read by calling POSIX::strftime. If an invocation of the POSIX module fails, the property is automatically assigned to 0. So like, she tries her best, and if POSIX ghosts her she just falls back. πŸ™ˆ

If 0, the English names of months and days of week are used.

Default value: 1

See also: date_as_string

  • year β€” Selects the year.

🌈 Methods

  • can_use_locale β€” Returns a boolean value, whether the locale information can be retrieved by calling strftime or not. A little vibe check on your locale, basically. ✨
  • month2str MONTH β€” Returns the MONTH name according to the useLocale value.
  • make_months β€” Returns an array of the 12 month names according to the useLocale value. All twelve. In order. Gorgeous. πŸ’–
  • day_of_week DAY, MONTH, YEAR, [ USE_FIRST_DAY_OF_WEEK = 1 ] β€” Returns an integer value between 0 and 6, the day of week on DAY, MONTH, YEAR date. If boolean USE_FIRST_DAY_OF_WEEK is set, the value of the firstDayOfWeek property is taken into account, so f ex the result of 0 means that this is a Sunday shifted forward by firstDayOfWeek days.
The switch from the Julian to the Gregorian calendar is ignored. She's not doing that math, bestie, and honestly? Fair. πŸ’€
  • date_as_string [ DAY, MONTH, YEAR ] β€” Returns string representation of date on DAY, MONTH, YEAR according to the useLocale property value.
  • date_from_time SEC, MIN, HOUR, M_DAY, MONTH, YEAR, ... β€” Copies date from localtime or gmtime results. This helper method allows the following syntax:
$calendar-> date_from_time( localtime( time));

Literally just hand her your localtime and she eats it up. πŸ”₯


🧚 AUTHOR 🧚

Dmitry Karasik, <dmitry@karasik.eu.org>. Shoutout to him fr fr. 🫢


🌟 SEE ALSO 🌟

Prima, Prima::Widget, POSIX, "localtime" in perlfunc, "time" in perlfunc, examples/calendar.pl.

Like, go read those too, iykyk. πŸ’…


Okay that's the whole page, and it slayed. This was Prima::Calendar(3) β€” perl v5.42.0, dated 2024-08-20. Now go build something adorable with a calendar in it. Periodt. πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from