Utilisation de la classe de calendrier pour déterminer les temps du matin ou de la PM.
int months = 1 + c.get(Calendar.MONTH);
4 Réponses :
C'est normal. Parce que l'index du calendrier code> commence à partir de 0. Ainsi, de sorte que vous avez besoin de
+1 code> pour obtenir le mois correct. P>
c'est ce que je pensais. Ma principale question était comment puis-je utiliser la classe de calendrier pour afficher AM ou PM? Parce que dans la mesure où j'ai testé le PM travaille, mais le Suis n'est pas.
Est-ce mon erreur ou comparez-vous si l'heure est inférieure à 12? (Si oui, alors c'est le matin). Vous faites l'inverse. Et vous pouvez faire un simple si (calendar.amge (calendar.am_pm) == 0) am_pm = "am"; sinon am_pm = "pm"; code> calendar.am_pm retourne 0 s'il est am et 1 pour pm
Je pense que ça marche maintenant, mais c'est bizarre. Je ne suis pas sûr de ce que je faisais mal à part les heures> 12; heures <12 choses ... parce que fondamentalement je vérifiais le == 1 ou 0
Déterminer AM vs. PM est un calcul simple en fonction de l'heure. Voici le code:
String timeString=""; int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY); if (hour == 0) { timeString = "12AM (Midnight)"; } else if (hour < 12) { timeString = hour +"AM"; } else if (hour == 12) { timeString = "12PM (Noon)"; } else { timeString = hour-12 +"PM"; }
Vérifiez simplement calendar.get (calendar.am_pm) == calendar.am code>
J'ai essayé Ce , mais cela ne fonctionne pas. Je dois obtenir la valeur AM_PM, puis faire la comparaison:
Calendar c = Calendar.getInstance(); int AM_PM = c.get(Calendar.AM_PM); if(AM_PM == Calendar.AM){ //AM }else{ //PM }
À titre de note latérale, il n'y a aucune raison d'avoir la clause IF / SINE, disent simplement une chaîne AM_PM = ""; if (am_orpm == 1) {am_pm = "pm"; } else {am_pm = "am"; }