2016-02-12 7 views
6

मैं अगले दिन (उदाहरण के लिए) दिनांक/समय पर LocalDateTime का उदाहरण बनाना चाहता हूं।सप्ताह के किसी दिए गए दिन के लिए अगला स्थानीयडेटाइम प्राप्त करें

क्या जावा टाइम एपीआई में कोई तरीका है, या क्या मुझे गणना करना चाहिए कि वर्तमान और गंतव्य तिथियों के बीच कितने दिन हैं और फिर LocalDateTime.of() विधि का उपयोग करें?

+0

मैं अनुशंसा करता हूं: https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html – Fincio

+3

@Fincio निश्चित रूप से नहीं। – Tunaki

+0

लोकलडेटाइम \t plusWeeks (लंबे सप्ताह)? – Fincio

उत्तर

11

हाथ से कोई भी गणना करने की आवश्यकता नहीं है।

आप LocalDateTime.with(adjuster) विधि के साथ एक समायोजक के साथ दी गई तारीख को समायोजित कर सकते हैं। वहाँ एक अंतर्निहित है समायोजक सप्ताह के अगले दिन के लिए: TemporalAdjusters.next(dayOfWeek):

रिटर्न अगले दिन के सप्ताह समायोजक, जो निर्दिष्ट की पहली आवृत्ति दिन के सप्ताह के बाद करने के लिए तिथि समायोजित कर देता है तारीख समायोजित किया जा रहा है।

public static void main(String[] args) { 
    LocalDateTime dateTime = LocalDateTime.now(); 
    LocalDateTime nextMonday = dateTime.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); 
    System.out.println(nextMonday); 
} 

इस कोड को आज की तारीख के आधार पर अगले सोमवार वापस आ जाएगी। (यानी सोमवार

LocalDateTime nextMonday = dateTime.with(next(MONDAY)); 

ध्यान दें कि अगर आज की तारीख एक सोमवार को पहले से ही है, इस कोड को अगले सोमवार वापस आ जाएगी:

स्थिर आयात का उपयोग करना, यह पढ़ने के लिए कोड आसान बना देता है अगले सप्ताह से)। यदि आप उस स्थिति में वर्तमान दिनांक रखना चाहते हैं, तो आप nextOrSame(dayOfWeek) का उपयोग कर सकते हैं।

संबंधित मुद्दे