大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.util.Calendar;
创新互联建站成立与2013年,是专业互联网技术服务公司,拥有项目网站设计制作、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元零陵做网站,已为上家服务,为零陵各地企业和个人服务,联系电话:028-86922220
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
/**
* Title: Test03.javabr
* Description:
*
* @author 王凯芳
* @date 2020年3月5日 下午6:03:04
* @version 1.0
*
* @request 编写一个方法能计算任何一个人今天离他最近下一次生日还有多少天,然后在主方法(main方法)中输入你的出生年月日,调用该方法的计算结果并输出信息“某某同学离自己最近下一次生日x天”。
*/
public class Test03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的生日,格式为(2000/01/01):");
String line = sc.nextLine();
String[] strs = line.split("/");
if (strs.length == 3) {
int days = getDays(strs[0], strs[1], strs[2]);
if (days == 0) {
System.out.println(String.format("%s 同学,今天是你的生日,祝你生日快乐(#^.^#)", name, days));
} else {
System.out.println(String.format("%s 同学离自己最近下一次生日%d天。", name, days));
}
} else {
System.out.println("生日输入不正确!请按格式输入。");
}
sc.close();
}
/**
* 获取最近一次生日天数
*
* @param year
* @param month
* @param day
* @return
*/
public static int getDays(String year, String month, String day) {
Calendar now = Calendar.getInstance();
now.set(Calendar.HOUR_OF_DAY, 0);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
now.set(Calendar.MILLISECOND, 0);
int now_year = now.get(Calendar.YEAR);
Calendar birthday = Calendar.getInstance();
birthday.set(Calendar.YEAR, now_year);
birthday.set(Calendar.MONTH, Integer.parseInt(month) - 1);
birthday.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day));
birthday.set(Calendar.HOUR_OF_DAY, 0);
birthday.set(Calendar.MINUTE, 0);
birthday.set(Calendar.SECOND, 0);
birthday.set(Calendar.MILLISECOND, 0);
long diff = now.getTimeInMillis() - birthday.getTimeInMillis();
if (diff == 0) {
return 0;
} else if (diff 0) {
long diffDays = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
return Math.abs((int) diffDays);
} else {
birthday.add(Calendar.YEAR, 1);
long diffMi = birthday.getTimeInMillis() - now.getTimeInMillis();
long diffDays = TimeUnit.DAYS.convert(diffMi, TimeUnit.MILLISECONDS);
return (int) diffDays;
}
}
}
获取系统时间:
import java.util.*;
import java.text.*;
public class TestDate {
public static void main(String[] args) {
Calendar ca = Calendar.getInstance();
int year = ca.get(Calendar.YEAR);//获取年份
int month=ca.get(Calendar.MONTH);//获取月份
int day=ca.get(Calendar.DATE);//获取日
int minute=ca.get(Calendar.MINUTE);//分
int hour=ca.get(Calendar.HOUR);//小时
int second=ca.get(Calendar.SECOND);//秒
int WeekOfYear = ca.get(Calendar.DAY_OF_WEEK);
}
用系统时间跟生日比较就行了
我加的import java.util.Date;和你老师说的import java.util.*;一样,那我改成你那种把
我写的应该是最简单的了,里面还写了很多注释,你可以看看,其实你新学习,坑农是看这些东西有点眼晕,别晕,其实都是很简单的,JAVA的最大特点就是他有很多别人写好的东西,调用就可以了,你不认识的就当是调用了
import java.util.*;
import javax.swing.JOptionPane;
public class Test93 {
public static void main(String[] args) {
System.out.println("我行我素购物管理系统生日问候");
//这是一个死循环,需要后面的break跳出
while (true) {
Date dt = new Date();
//dt就是获得的当前系统信息,下面用date的分别取今天的月份和日子
//注意月份要加1
//这里用Calendar会更好,但是貌似你要用date
int month = dt.getMonth() + 1;
int date = dt.getDate();
//用对话框提示用户,并得到用户的输入
String id = JOptionPane.showInputDialog(null, "请输入您的会员编号:");
String str = JOptionPane.showInputDialog(null, "请输入您的生日:");
String month2 = str.substring(0, 2);
String date2 = str.substring(3, 5);
//转换得到的字符串,和月份,日子分别比较
if (month == (Integer.parseInt(month2))
date == (Integer.parseInt(date2))) {
//一致就通知获奖,并结束程序
System.out.println("第一个产生的寿星为:"+id+" 获赠一个三星手机");
break;
} else {
//不一致继续循环
System.out.println("今天不是您的生日");
String str2 = JOptionPane.showInputDialog(null, "继续Y/N?");
//如果用户输入N则系统结束,大写小写N都可以
if ("N".equals(str2) || "n".equals(str2)) {
break;
}
}
}
}
}
最后再不愁一句,你把这个格式给修修,比如缩进什么的会更清晰,可以用eclipse 的ctrl+shift+f的快捷键
呵呵加油