moon-sighting-dart/.github/wiki/examples/basic-usage.md
2026-05-29 06:34:31 -04:00

1.7 KiB

Basic Usage Examples

Tonight's Moon

import 'package:moon_sighting/moon_sighting.dart';

void main() {
  final now = DateTime.now().toUtc();
  final phase = getMoonPhase(now);
  final position = getMoonPosition(now, 40.7128, -74.0060);

  print('Moon tonight (New York):');
  print('  Phase:        ${phase.phaseName}');
  print('  Illumination: ${phase.illumination.toStringAsFixed(1)}%');
  print('  Altitude:     ${position.altitude.toStringAsFixed(2)}°');
  print('  Azimuth:      ${position.azimuth.toStringAsFixed(2)}°');
  print('  Distance:     ${position.distanceKm.toStringAsFixed(0)} km');
}

Ramadan Crescent Visibility Check

import 'package:moon_sighting/moon_sighting.dart';

void main() {
  // Check crescent visibility for major Muslim cities on Ramadan eve
  final eveningOfCheck = DateTime.utc(2026, 2, 17, 18, 0);

  final cities = [
    ('Makkah',   21.4225,  39.8262,  3.0),
    ('Istanbul', 41.0082,  28.9784,  3.0),
    ('London',   51.5074,  -0.1278,  0.0),
    ('New York', 40.7128, -74.0060, -5.0),
  ];

  print('City              Zone');
  print('${'─' * 30}');
  for (final (city, lat, lng, _) in cities) {
    final vis = getMoonVisibilityEstimate(eveningOfCheck, lat, lng);
    print('${city.padRight(18)}${vis.zone.label}');
  }
}

Moon Phase Calendar

import 'package:moon_sighting/moon_sighting.dart';

void main() {
  print('Date,Phase,Illumination');
  for (int day = 1; day <= 30; day++) {
    final date = DateTime.utc(2025, 3, day, 12, 0);
    final phase = getMoonPhase(date);
    print('2025-03-${day.toString().padLeft(2, "0")},'
          '${phase.phaseName},${phase.illumination.toStringAsFixed(1)}%');
  }
}