1. 编写程序实现分时问候
Date d = new Date();
int h = d.getHours();
System.out.print("尊敬的先生(女士) ");
if (h >= 6 && h < 8) {
System.out.println("早上好");
} else if (h >= 8 && h < 12) {
System.out.println("上午好");
} else if (h >= 12 && h < 14) {
System.out.println("中午好");
} else if (h >= 14 && h < 18) {
System.out.println("下午好");
} else if (h >= 18 && h < 24) {
System.out.println("晚上好");
} else {
System.out.println("凌晨注意休息");
}
System.out.print("现在时间:");
var f=new SimpleDateFormat(" yyyy 年 MM 月 dd 日E HH 点 mm 分 ss 秒");
System.out.println(f.format(d));
2. 编写程序输出是星期几
public class Tian {
public static void main(String []args)
{
Scanner cin=new Scanner(System.in);
System.out.println("请输入年,月,日:");
while(cin.hasNext())
{
int year=cin.nextInt();
int month=cin.nextInt();
int day=cin.nextInt();
GregorianCalendar gre=new GregorianCalendar();
Date date=new Date(year-1900,month-1,day);
System.out.println(date);
gre.setTime(date);
int weekday=gre.get(Calendar.DAY_OF_WEEK)-1;
String []s={"星期天","星期一","星期二","星期三","星期四","星期五","星期六",};
System.out.println(year+" "+month+" "+day+" "+s[weekday]);
}
}
}
3. 编写程序输出 xxxx年xx月xx日 xx:xx:xx 星期几
public class Shijian {
public static void main(String[] args) {
var not=new Date();
System.out.println(not);
var f=new SimpleDateFormat("今天是"+" yyyy 年 MM 月 dd 日E HH 点 mm 分 ss 秒");
System.out.println(f.format(not));
}
}
4. 计算两个日期之间的天数(两种方法均可以)
public class Tian3 {
public static void main(String[] args) {
// Date a1=new Date(2001-1900,1-1,1);
// Date a2=new Date();
// System.out.println(a1);
// long b1= a1.getTime();
// long b2= a2.getTime();
// long b3=b2-b1;
// System.out.println("生存的第"+b3/(1000*60*60*24)+"天");
LocalDateTime a = LocalDateTime.of(2001,1,1,8,0,0);
LocalDateTime b = LocalDateTime.now();
long days = ChronoUnit.DAYS.between(a,b);
System.out.printf("%tF %<tT 到 %tF %<tT 之间有 %d 天",a,b,days);
}
}
5. 计算n天前,n天后日期
public class Tian2 {
public static void main(String[] args) {
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
calendar1.add(Calendar.DATE, -5);
calendar2.add(Calendar.DATE, +10);
String a = sdf1.format(calendar1.getTime());
String b = sdf1.format(calendar2.getTime());
System.out.println(a);
System.out.println(b);
}
}
这里以5天前和10天后为例。
6. 生成指定范围的随机日期对象2000-01-01 00:00:00 - now(三种方法均可以)
public class Random1 {
public static void main(String[] args) {
Date a1=new Date(2000-1900,1-1,1,0,0,0);
Date a2=new Date();
long m1=a1.getTime();
long m2=a2.getTime();
Random rand=new Random();
for (int i = 0; i < 10; i++) {
var time = rand.nextLong(m1,m2);
System.out.printf("%tF %<tT%n", time);
}
// Calendar n1=Calendar.getInstance();
// n1.set(2000,1-1,1,0,0,0);
// Calendar n2=Calendar.getInstance();
// Random rand=new Random();
// for (int i = 0; i < 10; i++) {
// var time=rand.nextLong(n1.getTimeInMillis(), n2.getTimeInMillis());
// System.out.printf("%tF %<tT%n",time);
// var d1 = LocalDateTime.of(2001, 1, 1, 0, 0, 0);
// var d2 = LocalDateTime.now();
// Random rand = new Random();
// long l = d1.toInstant(ZoneOffset.of("+8")).toEpochMilli();
// long l2 = d2.toInstant(ZoneOffset.of("+8")).toEpochMilli();
//
// for (int i = 0; i < 10; i++) {
// var time = rand.nextLong(l,l2);
// System.out.printf("%tF %<tT%n", time);
// }
}
感谢大家,希望能给大家带来帮助