जोडाटाइम का उपयोग करके एक यादृच्छिक डेटाटाइम उत्पन्न करना संभव है जैसे डेटाटाइम में प्रारूप yyyy-MM-dd एचएच: एमएम: एसएस और यह दो यादृच्छिक डेटाटाइम उत्पन्न करने में सक्षम होना चाहिए जहां दिनांक 2 शून्य तिथि 1 2 मिनट से अधिक हो लेकिन 60 मिनट से कम हो। कृपया कुछ विधि सुझाएं।जावा (जोडा समय) में यादृच्छिक दिनांक समय उत्पन्न करना
उत्तर
यह आपके द्वारा पूछे जाने वाले कड़ाई से पालन करता है (सही प्रारूप को छोड़कर)।
Random random = new Random();
DateTime startTime = new DateTime(random.nextLong()).withMillisOfSecond(0);
Minutes minimumPeriod = Minutes.TWO;
int minimumPeriodInSeconds = minimumPeriod.toStandardSeconds().getSeconds();
int maximumPeriodInSeconds = Hours.ONE.toStandardSeconds().getSeconds();
Seconds randomPeriod = Seconds.seconds(random.nextInt(maximumPeriodInSeconds - minimumPeriodInSeconds));
DateTime endTime = startTime.plus(minimumPeriod).plus(randomPeriod);
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(dateTimeFormatter.print(startTime));
System.out.println(dateTimeFormatter.print(endTime));
आप इस चलाते हैं, तो ध्यान दें जाएगा कि आप साल के लिए अपमानजनक मान मिल जाएगा, लेकिन वह बस दिनांक समय की पूरी संभव सीमा पर एक यादृच्छिक दिनांक समय पैदा करने का परिणाम (या उस बात के लिए तिथि) है । लेकिन एक निश्चित सीमा तक अंत समय को सीमित करने की एक ही तकनीक को यदि आप चाहें तो प्रारंभ समय पर लागू किया जा सकता है।
सरल
long rangebegin = Timestamp.valueOf("2013-02-08 00:00:00").getTime();
long rangeend = Timestamp.valueOf("2013-02-08 00:58:00").getTime();
long diff = rangeend - rangebegin + 1;
Timestamp rand = new Timestamp(rangebegin + (long)(Math.random() * diff));
तथ्य यह है कि किसी भी तारीख एक लंबे संख्या से दर्शाया जा सकता है, दिनांक वर्ग, http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#Date(long) की इस पद्धति पर एक बार देख ले, आप एक अधिकतम तिथि 1 परिभाषित कर सकते हैं के आधार पर, आज मान लीजिए , और जोड़ने के लिए मिनटों की संख्या यादृच्छिक।
दूसरे शब्दों में:
- चरण 1 - एक लंबे संख्या randomize या तिथि 1 के लिए एक संख्या निर्धारित
- चरण 2 - जोड़ने के लिए मिनट randomize, 58 मिनट (58 x 60 से यादृच्छिक गुणा x 1000) और तिथि 1 में जोड़ने के लिए, प्लस 2 मिनट (2x 60 x 1000)
कोशिश
Random r = new Random();
long t1 = System.currentTimeMillis() + r.nextInt();
long t2 = t1 + 2 * 60 * 1000 + r.nextInt(60 * 1000) + 1;
DateTime d1 = new DateTime(t1);
DateTime d2 = new DateTime(t2);
आप Math.random() का उपयोग करके यादृच्छिक संख्या उत्पन्न कर सकते हैं; आप इस मान का उपयोग कर सकते हैं
- 1. जोडा समय -
- 2. जावा एपेंगिन में जोडा समय
- 3. जोडा समय
- 4. जोडा समय
- 5. जावा जोडा समय - एक तिथि सीमा इटरेटर
- 6. जोडा समय गलत समय क्षेत्र
- 7. मैं जोडा समय
- 8. जोडा समय - टाइमज़ोन
- 9. मैं जोडा समय
- 10. जोडा समय क्षेत्र गणना
- 11. जोडा समय समय रूपांतरण 'बहुत जल्द'
- 12. प्राप्त java.util.Date Joda समय दिनांक समय
- 13. छुट्टियों को छोड़ते समय समाप्ति तिथि की गणना + जोडा समय
- 14. जावा में जोडा तिथि/समय पुस्तकालय का उपयोग करके "आज" के लिए दिनांक/समय सीमा कैसे प्राप्त होती है?
- 15. जावा: जेपीए कक्षाएं, दिनांक से दिनांक समय
- 16. जावा 7 दिनांक/समय एपीआई
- 17. सुनिश्चित करना सही दिनांक/समय
- 18. जोडा लोकलटाइम को एसक्यूएल समय
- 19. जोडा समय: यूटीसी को स्थानीय
- 20. PHP के लिए दिनांक और समय सहायक (जैसे जावा में जोडा-टाइम)
- 21. बहुत बड़ी यादृच्छिक संख्याएं उत्पन्न करना जावा
- 22. जावा 7 में शामिल होने वाला जोडा समय?
- 23. दिनांक बनाम दिनांक समय
- 24. जोडा समय में ऑफसेट घंटों का उपयोग करते समय समय क्षेत्र संक्षेप को कैसे मुद्रित करें?
- 25. दिनांक समय
- 26. नेट दिनांक समय में कनवर्ट जावास्क्रिप्ट दिनांक
- 27. दिनांक समय पिकर - खोलने की तिथि और समय सेट करना
- 28. स्ट्रिंग दिनांक वर्तमान दिनांक/समय?
- 29. जावा में समय-समय पर ताज़ा कैश को लागू करना
- 30. जावा जोडा समय - डाउनलोड, और स्थापित करें - चरण
यह 1 9 70-01-01 डुनो की तारीखों के साथ केवल एक यादृच्छिक संख्या उत्पन्न करता है। – chettyharish
मुझे लगता है कि आखिरी पंक्ति 'टिमस्टैम्प रैंड = नई टाइमस्टैम्प (रेंजबेजिन + (लंबी) (Math.random() * diff) होना चाहिए; '' – saschoar