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天的生日…请帮助我更新我的代码见。请接受。请注意,您必须填写您未来的生日,而不是您的出生日期。不管怎样,从你的出生日期开始计算并不难。我添加了另一个版本,让你使用你的出生日期,即自动计算你未来的生日。