Je veux être en mesure de convertir entre les calendriers grégorien et julien (note: pas "julian date") en utilisant NSCalendar sur l'iPhone. Comment puis-je sous-classer NSCalendar pour utiliser le calendrier julien? Je veux faire cela sans égard pour 1582 ou 1752 ou une année donnée.Créer un nouveau calendrier NSCalendar
Répondre
Alors que vous pouvez certainement y aller, mais je soupçonne que NSCalendar
est difficile à sous-classer. C'est sans frais ponté, ce qui complique les choses; est entrelacé avec NSLocale, ce qui complique les choses; il est initialisé avec des identifiants plutôt que d'être sous-classé, ce qui complique les choses; et ne donne aucune indication sur les méthodes qui sont ses primitives qui ... compliquent les choses ...
Avez-vous besoin de la sous-classe pour vous brancher sur une architecture existante? Sinon, il serait probablement plus facile de créer un objet à partir de zéro qui a une interface similaire. Vous pouvez peut-être utiliser un NSGregorianCalendar
pour effectuer la majeure partie du travail et simplement compenser la date par les jours requis avant le calcul des composants de date. Vous aurez besoin d'une logique spéciale pour 1700, 1800 et 1900 (et bien sûr 2100, etc.) puisque NSGregorianCalendar
ne vous permettra pas de créer des composants de date pour un jour bissextile pendant ces années, mais c'est probablement plus facile que de faire tout le composant date calculs à la main.
Juste curieux de savoir quel serait l'objectif d'un tel calendrier?
- 1. Comment créer un nouveau dossier?
- 2. Comment créer un calendrier en code-behind?
- 3. Comment créer un nouveau signal dans pygtk
- 4. créer un nouveau document vide avec javascript
- 5. Comment créer un nouveau bureau? C++
- 6. Comment créer un nouveau tableau dans VB.NET?
- 7. Est-il possible de créer son propre système de calendrier dans Cocoa Touch/UIKit?
- 8. Comment puis-je créer un calendrier avec des données MYSQL?
- 9. Interroger un queryset Django sans créer un nouveau jeu de requête?
- 10. Remplir un calendrier Schedule
- 11. Comment créer un nouveau fichier Excel à l'aide de JXL?
- 12. SQL Server JDBC: impossible de créer un nouveau thread natif
- 13. DSL Outils: Créer un nouveau diagramme dans le code personnalisé
- 14. ASP.NET Application Services - comment créer un nouveau compte d'utilisateur?
- 15. comment créer un nouveau fichier en utilisant python
- 16. MySQL Impossible de créer un nouveau thread (errno 12)
- 17. Comment créer un nouveau dossier sur le protocole POP3
- 18. Comment créer un nouveau dossier et y enregistrer des fichiers?
- 19. Créer un nouveau LINQ aux entités Objets avec des associations
- 20. Comment créer un nouveau thème dans drupal 7
- 21. Comment créer un nouveau port et l'affecter à une imprimante
- 22. Créer un nouveau point de connexion dans VC++ 6?
- 23. Créer un nouveau vecteur à l'aide d'une transformée
- 24. Combien coûte-t-il de créer un nouveau UIWebView?
- 25. Remplir un calendrier avec des rendez-vous
- 26. Quelqu'un a un modèle simple pour créer un nouveau surligneur de syntaxe pour un éditeur Netbeans?
- 27. Cocoa Touch: Disposer des dates dans un calendrier mensuel
- 28. Calendrier dans Zend Framework
- 29. Ajout de champs partagés à un calendrier SharePoint à synchroniser avec un calendrier Outlook
- 30. Django, calendrier
Mon église utilise le calendrier julien dans nos observances. Je cherche à écrire un programme qui énumérera les observances à venir. Par exemple, le 25 décembre sur le calendrier julien est actuellement 13 jours plus tard (7 janvier) sur le calendrier grégorien. Je pourrais facilement écrire quelque chose qui prendrait la date actuelle selon le calendrier grégorien et soustrais 13 jours pour donner la date sur le calendrier julien. Le problème est, le jour de la semaine serait faux (mercredi 7 janvier 2009 sur le calendrier grégorien est le mercredi 25 décembre 2008 sur le calendrier julien, pas jeudi). Je suppose que je devrais juste le pirater à la main. –
Je suppose que vous ne devrez pas vous inquiéter de la prochaine année bissextile divergente (en février 2100), il semble donc que vous puissiez calculer le jour de la semaine à partir du calendrier grégorien, puis soustraire 13 jours pour obtenir le reste de la date composants de la date julienne. Pas élégant, mais efficace pour quelques décennies au moins. Et rapide à coder. –