Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 下一个生日的剩余天数和下一个生日的当天_Android - Fatal编程技术网

Android 下一个生日的剩余天数和下一个生日的当天

Android 下一个生日的剩余天数和下一个生日的当天,android,Android,有人能帮我计算下一个生日的剩余天数吗?请看下面的表格 例如,要获取一周中的某一天,您需要键入: Calendar daymonthyear = Calendar.getInstance(); daymonthyear.set(birthdayYear, birthdayMonth, birthdayDay); int dayOfTheWeek = daymonthyear.get(Calendar.DAY_OF_WEEK); 编辑:剩余天数通过简单减去当前日期/月份/年份和生日日期/月份/年份

有人能帮我计算下一个生日的剩余天数吗?请看下面的表格

例如,要获取一周中的某一天,您需要键入:

Calendar daymonthyear = Calendar.getInstance();
daymonthyear.set(birthdayYear, birthdayMonth, birthdayDay);
int dayOfTheWeek = daymonthyear.get(Calendar.DAY_OF_WEEK);
编辑:剩余天数通过简单减去当前日期/月份/年份和生日日期/月份/年份值获得。但是,请注意不要在公式中留下负值

添加以下导入:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;



    final String strBDay = "2014/04/07";//"1990/04/07"; // Next Birtday date
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    Date dt = null;
    try
    {
        dt = sdf.parse(strBDay);
    }
    catch (final java.text.ParseException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    final Calendar BDay = Calendar.getInstance();
    BDay.setTime(dt);

    final Calendar today = Calendar.getInstance();

    // Result in millis
    final long millis = BDay.getTimeInMillis() - today.getTimeInMillis();

    // Convert to days
    final long days = millis / 86400000; // Precalculated (24 * 60 * 60 * 1000)

    sdf = new SimpleDateFormat("EEEE");
    sdf.format(dt);

    System.out.println("Left days to bday: " + days);
    System.out.println("It will be       : " + days);
输出:

12-14 16:23:08.811:I/System.out5253:B日剩余天数:113 12-14 16:23:08.811:I/System.out5253:将是:星期一

[使用D.O.B.的版本]

如果你想用你的出生日期:

    final String strBDay = "1990/04/07";//"1990/04/07"; // Next Birtday date
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    Date dt = null;
    try
    {
        dt = sdf.parse(strBDay);
    }
    catch (final java.text.ParseException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    final Calendar BDay = Calendar.getInstance();
    BDay.setTime(dt);

    final Calendar today = Calendar.getInstance();

    // Take your DOB Month and compare it to current month
    final int BMonth = BDay.get(Calendar.MONTH);
    final int CMonth = today.get(Calendar.MONTH);
    BDay.set(Calendar.YEAR, today.get(Calendar.YEAR));
    if(BMonth <= CMonth)
    {
        BDay.set(Calendar.YEAR, today.get(Calendar.YEAR) + 1);
    }

    // Result in millis
    final long millis = BDay.getTimeInMillis() - today.getTimeInMillis();

    // Convert to days
    final long days = millis / 86400000; // Precalculated (24 * 60 * 60 * 1000)

    sdf = new SimpleDateFormat("EEEE");
    //final String dayOfTheWeek = sdf.format(BDay.getTime());
    final String dayOfTheWeek = sdf.format(dt);

    System.out.println("Left days to bday: " + days);
    System.out.println("It will be       : " + dayOfTheWeek);
输出:

12-14 16:48:11.801:I/System.out5342:B日剩余天数:113
12-14 16:48:11.801:I/System.out5342:将是:星期一

谢谢你。。。。。我成功地获得了第二天,但是下一个生日的剩余天数呢?我用1990/04/07的生日检查了它,而不是剩余114天,它给了我8652天的生日…请帮助我更新我的代码见。请接受。请注意,您必须填写您未来的生日,而不是您的出生日期。不管怎样,从你的出生日期开始计算并不难。我添加了另一个版本,让你使用你的出生日期,即自动计算你未来的生日。