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

general_datetime is an package to handle all calendars and dates. The powerful interface can make any custom calendars

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:general_datetime/general_datetime.dart';
import 'package:general_datetime/default_localizations.dart';
import 'package:general_datetime/delegates.dart';

void main() {
  // Create a Gregorian date and convert it to Persian dates:
  PersianDateTime jDate = PersianDateTime.fromDateTime(DateTime(2025, 3, 1));
  print(
      'Converted to Jalali: ${jDate.toString()}'); // e.g. "1403-12-11 00:00:00.000"

  // Create a Jalali date directly (auto-normalization applies):
  PersianDateTime directDate = PersianDateTime(1403, 12, 11, 14, 30);
  print('Direct Jalali: ${directDate.toString()}');

  // Hijri Example:
  HijriDateTime hDate = HijriDateTime.fromDateTime(DateTime(2025, 3, 1));
  print('Converted to Hijri: ${hDate.toString()}');

  runApp(AppStartup());
}

class AppStartup extends StatelessWidget {
  const AppStartup({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      localizationsDelegates: [
        DefaultPersianCalendarMaterialLocalizations.delegate,
        DefaultHijriCalendarMaterialLocalizations.delegate,
      ],
      locale: Locale('en'),
      supportedLocales: [Locale('en'), Locale('fa')],
      home: Scaffold(
        appBar: AppBar(
          title: Text("Calendar delegates"),
        ),
        body: SingleChildScrollView(
          child: Column(
            children: [
              Text("Gregorian Calendar"),
              CalendarDatePicker(
                initialDate: DateTime.now(),
                firstDate: DateTime(2020, 1, 1),
                lastDate: DateTime(2030, 12, 31),
                currentDate: DateTime.now(),
                calendarDelegate: GregorianCalendarDelegate(),
                onDateChanged: (value) {},
              ),
              Divider(),
              Text("Persian Calendar"),
              CalendarDatePicker(
                initialDate: PersianDateTime.now(),
                firstDate: PersianDateTime(1400, 1, 1),
                lastDate: PersianDateTime(1450, 12, 31),
                currentDate: PersianDateTime.now(),
                onDateChanged: (value) {
                  print('Persian selected: $value');
                },
                calendarDelegate: PersianCalendarDelegate(),
              ),
              Divider(),
              Text("Hijri Calendar"),
              CalendarDatePicker(
                initialDate: HijriDateTime.now(),
                firstDate: HijriDateTime(1440, 1, 1),
                lastDate: HijriDateTime(1460, 12, 31),
                currentDate: HijriDateTime.now(),
                onDateChanged: (value) {
                  print('Hijri selected: $value');
                },
                calendarDelegate: HijriCalendarDelegate(),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
3
likes
160
points
227
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

general_datetime is an package to handle all calendars and dates. The powerful interface can make any custom calendars

Homepage
Repository (GitHub)
View/report issues

Topics

#date #time #calendar #utils #service

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on general_datetime