2017-12-29 50 views
0

In meiner App möchte ich die Liste der Termine anzeigen, die ein Benutzer in dieser Woche hat. Die an die API zu übergebenden Argumente sind fromDate und toDate in Millisekunden (long). Ich muss wissen, wie ich das Datum in Millisekunden des letzten Tages der Woche erhalten kann (Betrachten Sie die Woche beginnt von Sonntag und endet am Samstag).Datum in Millisekunden (lang) für kommenden Samstag

Antwort

0
// get today and clear time of day 
     Calendar cal = Calendar.getInstance(); 
     cal.set(Calendar.HOUR_OF_DAY, 0); // ! clear would not reset the hour of day ! 
     cal.clear(Calendar.MINUTE); 
     cal.clear(Calendar.SECOND); 
     cal.clear(Calendar.MILLISECOND); 

// get start of this week in milliseconds 
     cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek()); 
     System.out.println("Start of this week:  " + cal.getTime()); 
     System.out.println("... in milliseconds:  " + cal.getTimeInMillis()); 

// start of the next week 
     cal.add(Calendar.WEEK_OF_YEAR, 1); 
     System.out.println("Start of the next week: " + cal.getTime()); 
     System.out.println("... in milliseconds:  " + cal.getTimeInMillis()); 

für den letzten Tag der Woche fügen Sie 6 dort hinzu !!

0

Dies kann erreicht werden, indem der erste Tag der Woche als Sonntag hinzugefügt wird und dann 6 Tage dazu addiert werden.

// Get current time. You can reset hours/ minutes/ seconds it with default values which you want. 
Calendar c = new GregorianCalendar(Locale.getDefault()); 

// Set first day of week 
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);  
// Add 6 into that to get Saurday 
c.add(Calendar.DAY_OF_WEEK, 6); 

// Get millisenconds for Saturday 
long millies = c.getTimeInMillis(); 
+0

Funktioniert das für irgendein Land? –

+0

@MehulKanzariya Ja. Es wird mit 'Locale.getDefault()' tun. Und wenn Sie länderspezifisch werden möchten, können Sie 'Locale.US' oder 'Locale.CANADA' usw. verwenden. –

0

Überprüfen Sie den folgenden Code, um den kommenden Samstag in Millisekunden zu erhalten.

public class NextSaturdayMain 
{ 
    public static void main(String[] args) 
    { 
     System.out.println(getSaturday(new Date())); 
    } 

    public static long getSaturday(Date today) 
    { 
     Calendar cal = Calendar.getInstance(); 

     cal.setTime(today); 

     int dow = cal.get(Calendar.DAY_OF_WEEK); 

     while (dow != Calendar.SATURDAY) { 
      int date = cal.get(Calendar.DATE); 

      int month = cal.get(Calendar.MONTH); 

      int year = cal.get(Calendar.YEAR); 

      if (date == getMonthLastDate(month, year)) { 

       if (month == Calendar.DECEMBER) { 
        month = Calendar.JANUARY; 

        cal.set(Calendar.YEAR, year + 1); 
       } else { 
        month++; 
       } 

       cal.set(Calendar.MONTH, month); 

       date = 1; 
      } else { 
       date++; 
      } 

      cal.set(Calendar.DATE, date); 

      dow = cal.get(Calendar.DAY_OF_WEEK); 
     } 
     System.out.println(cal.getTime()); 
     return cal.getTimeInMillis(); 
    } 

    private static int getMonthLastDate(int month, int year) 
    { 
     switch (month) 
     { 
      case Calendar.JANUARY: 
      case Calendar.MARCH: 
      case Calendar.MAY: 
      case Calendar.JULY: 
      case Calendar.AUGUST: 
      case Calendar.OCTOBER: 
      case Calendar.DECEMBER: 
       return 31; 

      case Calendar.APRIL: 
      case Calendar.JUNE: 
      case Calendar.SEPTEMBER: 
      case Calendar.NOVEMBER: 
       return 30; 

      default: // Calendar.FEBRUARY 
       return year % 4 == 0 ? 29 : 28; 
     } 
    } 
} 
+2

Ich habe den Link zu Ihrer Website entfernt, da nichts mehr hinzugefügt wird, als was hier gepostet wird. Bitte lesen Sie [Ist es akzeptabel, Ihr eigenes Blog zu fördern?] (Https://meta.stackoverflow.com/questions/273209/is-it-acceptable-to-promote-your-own-blog) und [Wie nicht sein ein Spammer] (https://stackoverflow.com/help/promotion) – adiga

Verwandte Themen