Par exemple, j'ai la date: "23/2/2010" (23 février 2010). Je veux le transmettre à une fonction qui renverrait le jour de la semaine . Comment puis-je faire ceci?
Dans cet exemple, la fonction doit renvoyer String
"Tue".
De plus, si vous ne souhaitez que l'ordinal du jour, comment le récupérer?
Calendar
classe, telles queCalendar.SUNDAY
ouCalendar.JANUARY
.Calendar
,Date
etDateTimeFormat
(et le temps Joda aussi) et utiliser lesjava.time
classes Java 8 , par exempleYearMonth
ouLocalDate
. En savoir plus dans cette réponse .java.util.Date
,java.util.Calendar
etjava.text.SimpleDateFormat
sont maintenant héritées , supplantées par les classes java.time intégrées à Java 8 et Java 9. Voir le didacticiel d'Oracle .Utilisez ce code pour trouver le nom du jour à partir d'une date d'entrée.Simple et bien testé.
la source
java.util.Date
,java.util.Calendar
etjava.text.SimpleDateFormat
sont maintenant héritées , supplantées par les classes java.time intégrées à Java 8 et Java 9. Voir le didacticiel d'Oracle .Utilisez simplement SimpleDateFormat .
Le résultat est le: sam.28 déc.2013
Le constructeur par défaut prend « la valeur par défaut » Locale , alors faites attention à l' utiliser lorsque vous avez besoin d' un modèle spécifique.
la source
tl; dr
Utilisation de java.time …
Voir ce code s'exécuter en direct sur IdeOne.com (mais ne
Locale.US
fonctionne que là-bas).java.time
Voir mon exemple de code ci-dessus et voir la bonne réponse pour java.time par Przemek .
Nombre ordinal
Pour le nombre ordinal, envisagez
DayOfWeek
plutôt de passer autour de l' objet enum tel queDayOfWeek.TUESDAY
. Gardez à l'esprit que aDayOfWeek
est un objet intelligent, pas seulement une chaîne ou un simple nombre entier. L'utilisation de ces objets enum rend votre code plus auto-documenté, garantit des valeurs valides et fournit une sécurité de type .Mais si vous insistez, demandez
DayOfWeek
un numéro . Vous obtenez 1-7 du lundi au dimanche selon la norme ISO 8601 .Joda-Time
MISE À JOUR: Le projet Joda-Time est maintenant en mode maintenance. L'équipe conseille de migrer vers les classes java.time. Le framework java.time est intégré à Java 8 (ainsi que rétroporté vers Java 6 et 7 et adapté à Android ).
Voici un exemple de code utilisant la bibliothèque Joda-Time version 2.4, comme mentionné dans la réponse acceptée de Bozho . Joda-Time est de loin supérieur aux classes java.util.Date/.Calendar fournies avec Java.
LocalDate
Joda-Time propose la
LocalDate
classe pour représenter une date uniquement sans heure ni fuseau horaire. Exactement ce que cette question appelle. Les anciennes classes java.util.Date/.Calendar fournies avec Java n'ont pas ce concept.Analyser
Analysez la chaîne en une valeur de date.
Extrait
Extrait de la valeur de date le numéro et le nom du jour de la semaine.
Déverser
Dump dans la console.
Courir
Lorsqu'il est exécuté.
À propos de java.time
Le framework java.time est intégré à Java 8 et versions ultérieures. Ces classes supplantent les anciens gênants hérités des classes date-heure tels que
java.util.Date
,Calendar
, etSimpleDateFormat
.Le projet Joda-Time , désormais en mode maintenance , conseille la migration vers les classes java.time .
Pour en savoir plus, consultez le didacticiel Oracle . Et recherchez Stack Overflow pour de nombreux exemples et explications. La spécification est JSR 310 .
Où obtenir les classes java.time?
Le projet ThreeTen-Extra étend java.time avec des classes supplémentaires. Ce projet est un terrain d'essai pour d'éventuels futurs ajouts à java.time. Vous trouverez peut - être des classes utiles ici, comme
Interval
,YearWeek
,YearQuarter
et plus .la source
java.time
Utilisation du
java.time
framework intégré à Java 8 et versions ultérieures.L' énumération peut générer une chaîne du nom du jour automatiquement localisée dans la langue humaine et les normes culturelles d'un . Spécifiez un pour indiquer que vous souhaitez une forme longue ou un nom abrégé.
DayOfWeek
Locale
TextStyle
la source
Vous pouvez essayer le code suivant:
la source
LocalDate
? Avez-vous lu ceux-ci avant de poster?la source
Pour Java 8 ou version ultérieure , Localdate est préférable
Remarque: si l'entrée est définie par chaîne / utilisateur, vous devez l'analyser en int .
la source
la source
Une autre façon «amusante» est d'utiliser l' algorithme de Doomsday . C'est une méthode beaucoup plus longue, mais elle est également plus rapide si vous n'avez pas besoin de créer un objet Calendrier avec une date donnée.
la source
Peut utiliser l'extrait de code suivant pour une entrée comme (day = "08", month = "05", year = "2015" et la sortie sera "WEDNESDAY")
la source
Réponse en une ligne:
Exemple d'utilisation:
la source
la source
la source
Il y a un défi sur la date et l'heure du hackerrank Java
personnellement, je préfère la classe LocalDate.
Il y a une vidéo sur ce défi.
Solution Java Date and Time Hackerrank
J'espère que cela aidera :)
la source
Calendar
classe, S'il vous plaît noter que laset
méthode dans le calendrier prend des mois à partir de 0 à savoir0 for January
. Je vous remercie!Ajout d'une autre façon de le faire exactement ce que l'OP a demandé, sans utiliser les dernières méthodes intégrées:
la source
SimpleDateFormat
etDate
. En particulier, vous ne devez pas utiliser lagetDay
méthode obsolète , elle n'est pas fiable. Et vous ne devriez pas utiliserif
-else
pour sélectionner parmi 7 valeurs, c'est pour cela que nous avonsswitch
, ou vous pouvez utiliser un tableau. Dans l'ensemble, votre code est à la fois plus long et plus compliqué que nécessaire.la source
Programme pour trouver le jour de la semaine en donnant le mois et l'année de la date d'entrée de l'utilisateur à l'aide du
java.util.scanner
package:la source
java.util.Date
,java.util.Calendar
etjava.text.SimpleDateFormat
sont maintenant héritées , supplantées par les classes java.time intégrées à Java 8 et Java 9. Voir le didacticiel d'Oracle .if ((ym%4==0) && (gm==2)){ d=(gd+m[gm-1]+ym+yp+y[a]-1)%7;
Obtenez la valeur du jour en fournissant l'horodatage actuel.
la source
la source
La méthode ci-dessous récupère sept jours et renvoie le nom court des jours dans List Array à Kotlin, vous pouvez simplement reformater ensuite au format Java, en présentant simplement une idée de la façon dont le calendrier peut renvoyer un nom court
des résultats comme
la source
Calendar
classe en 2019. Elle est mal conçue et obsolète depuis longtemps. Au lieu de cela, je recommandeLocalDate
etDayOfWeek
de java.time, l'API de date et d'heure Java moderne .Vous pouvez utiliser la méthode ci-dessous pour obtenir le jour de la semaine en passant une date spécifique,
Ici, pour la méthode set de la classe Calendar, la partie Tricky est que l'index du paramètre month commencera à 0 .
la source
La classe Calendar a une fonctionnalité displayName intégrée:
Disponible depuis Java 1.6. Voir aussi la documentation Oracle
la source
Cela fonctionne correctement ...
Il fournit la méthode intégrée getDayOfWeek () pour obtenir le jour d'une semaine particulière:
Pour affecter la valeur de enum
l.getDayOfWeek()
à une chaîne, vous pouvez probablement utiliser la méthode de Enum appeléename()
qui renvoie la valeur de l'objet enum.la source
listHolidays.add(LocalDate.of(year, 1, 1));
à la réponse. Si vous souhaitez améliorer la réponse, vous devez ajouter la vôtre. J'espère que ça aideVous trouverez ci-dessous les deux lignes d'extrait utilisant l'API Java 1.8 Time pour vos besoins.
la source