相关疑难解决方法(0)

这个随机出生日期有什么问题?

我正在尝试为25到50年前的出生日期编写出生发生器的随机日期.我坚持使用Java 1.4并试图通过java.util.Calendar来实现这一点(是的,是的,我知道我应该使用Joda库).这是我在的地方:

private static long ONE_YEAR_AS_MILLISECONDS = 365*24*60*60*1000;
private static long TWENTY_FIVE_YEARS_AS_MILLISECONDS = 25*ONE_YEAR_AS_MILLISECONDS;
private static long FIFTY_YEARS_AS_MILLISECONDS = 50*ONE_YEAR_AS_MILLISECONDS;

private static String generateDOB()
{
    //Equation for calculating a random number within a given range is as follows:  Min + (int)(Math.random() * ((Max - Min) + 1))
    long someTimeBetween25And50YearsInMilliSeconds = TWENTY_FIVE_YEARS_AS_MILLISECONDS + 
                (long)(Math.random() * ((FIFTY_YEARS_AS_MILLISECONDS - TWENTY_FIVE_YEARS_AS_MILLISECONDS) + 1));
    Calendar dob = Calendar.getInstance();
    dob.setTimeInMillis(dob.getTimeInMillis() - someTimeBetween25And50YearsInMilliSeconds);
    StringBuffer sb = new StringBuffer();
    sb.append(dob.get(Calendar.YEAR)).append("/").append(dob.get(Calendar.MONTH)+1).append("/").append(dob.get(Calendar.DAY_OF_MONTH));
    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

它执行正常,但在2008年或2009年,100个日期的输出结果全部为:

2008/10/8
2008/9/22
2008/7/26
2008/8/20 …
Run Code Online (Sandbox Code Playgroud)

java random

1
推荐指数
2
解决办法
3762
查看次数

Android日历:下周的一天

我有这个方法解析一天和一个时间,问题是我需要得到下周的一天.

例:

我有这个日期和星期一,晚上10点,当前时间是星期一晚上11点,

当我解析parseTime("M","10:00 PM")它时,由于当前时间它返回过去的日期.

我想实现的是下周的晚上10点

public static Calendar parseTime(String day, String time) {

    String[] sepa_time_ampm = time.split(" ");

    String[] sepa_time_hr_mn = sepa_time_ampm[0].split(":");

    Calendar calendar = Calendar.getInstance();

    if (!isNumeric(day)) {
        calendar.set(Calendar.DAY_OF_WEEK, parseDay(day));
    }

    if(Integer.parseInt(sepa_time_hr_mn[0]) == 12) sepa_time_hr_mn[0] = "00";

    calendar.set(Calendar.HOUR, Integer.parseInt(sepa_time_hr_mn[0]));
    calendar.set(Calendar.MINUTE, Integer.parseInt(sepa_time_hr_mn[1]));
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.MILLISECOND, 0);



    if (sepa_time_ampm[1].equals("AM")) {
        calendar.set(Calendar.AM_PM, Calendar.AM);
    } else {
        calendar.set(Calendar.AM_PM, Calendar.PM);
    }

    if((calendar.getTimeInMillis() - System.currentTimeMillis()) < 0) {
    //It is now in the past
    }

    return calendar; …
Run Code Online (Sandbox Code Playgroud)

android date

0
推荐指数
1
解决办法
2339
查看次数

标签 统计

android ×1

date ×1

java ×1

random ×1