2

30分ごとに00:00から24:00に移動するために、日付/時刻または任意のタイプの変数をどのようにループするのか疑問に思っていますか?

したがって、24時間形式(01:00、09:00)で時刻を表示する変数が必要であり、それをループするたびに、時刻に30分を追加しますか?次に、この値を文字列で使用する必要があります。

時間は00:00AMに開始する必要があり、24:00に終了します。

どのように私はそれと一緒に行くべきですか?

output should be like this - 00:00 00:30 01:00 ....24:00
4

4 に答える 4

15

おそらく少しオーバーキルしますが、それはすべての自動ローリングを行い、DateFormat

DateFormat df = new SimpleDateFormat("HH:mm");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
int startDate = cal.get(Calendar.DATE);
while (cal.get(Calendar.DATE) == startDate) {
    System.out.println(df.format(cal.getTime()));
    cal.add(Calendar.MINUTE, 30);
}

24:00そのままでは持てません00:00...

于 2013-01-10T06:11:48.213 に答える
3

このコードを使用してみてください

private void displayTimeSlots() {

    String timeValue = "T00:00:4.896+05:30";
    SimpleDateFormat sdf = new SimpleDateFormat("'T'hh:mm:ss.SSS");
    try {
        Calendar startCalendar = Calendar.getInstance();
        startCalendar.setTime(sdf.parse(timeValue));

        if (startCalendar.get(Calendar.MINUTE) < 30) {
            startCalendar.set(Calendar.MINUTE, 30);
        } else {
            startCalendar.add(Calendar.MINUTE, 30); // overstep hour and clear minutes
            startCalendar.clear(Calendar.MINUTE);
        }

        Calendar endCalendar = Calendar.getInstance();
        endCalendar.setTime(startCalendar.getTime());

        // if you want dates for whole next day, uncomment next line
        //endCalendar.add(Calendar.DAY_OF_YEAR, 1);
        endCalendar.add(Calendar.HOUR_OF_DAY, 24 - startCalendar.get(Calendar.HOUR_OF_DAY));

        endCalendar.clear(Calendar.MINUTE);
        endCalendar.clear(Calendar.SECOND);
        endCalendar.clear(Calendar.MILLISECOND);

        SimpleDateFormat slotTime = new SimpleDateFormat("hh:mm a");
        while (endCalendar.after(startCalendar)) {

            startCalendar.add(Calendar.MINUTE, 30);
            String Timeslots = slotTime.format(startCalendar.getTime());


            Log.e("DATE", Timeslots);
        }

    } catch (ParseException e) {
        // date in wrong format
    }
}
于 2017-07-18T14:58:29.257 に答える
2
于 2017-07-19T01:31:39.617 に答える
1

これを試して -

Calendar instance = Calendar.getInstance();
instance.setTime(new SimpleDateFormat("hh:mm:ss a").parse("00:00:00 AM"));
System.out.println(instance.getTime());
int i=1;
while(i++!=49){
     instance.add(Calendar.MINUTE, 30);
     System.out.println(instance.getTime());
}
于 2013-01-10T06:11:27.977 に答える