java输入日期正确就显示从 1900 年 1 月 1 日开始的天数(基准日当天记为第 0 日)不使用date calen
时间: 2024-05-26 20:10:14 浏览: 18
dar类和DateFormat类,有什么方法可以实现这个功能?
可以使用System.currentTimeMillis()方法获取当前时间的毫秒数,然后将其转换为天数。具体实现方法:先定义一个long类型的变量存储当前时间的毫秒数,然后将其除以一天的毫秒数(1000 * 60 *60 * 24),再向下取整即可得到从1900年1月1日开始的天数。代码示例如下:
long currentTimeMillis = System.currentTimeMillis();
int days = (int) (Math.floor((currentTimeMillis / (1000 * 60 * 60 * 24))) - 693594);
System.out.println("当前时间距离1900年1月1日已经过去:" + days + "天");
相关问题
掌握Date类和Calen用户输入两个日期,程序将判断两个日期的大小关系,以及两日期间隔的天数。
下面是一个Java程序,使用Date类和Calendar类实现输入两个日期,判断大小关系和间隔天数的功能:
```java
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
System.out.print("请输入第一个日期(yyyy-MM-dd):");
String dateStr1 = scanner.nextLine();
Date date1 = dateFormat.parse(dateStr1);
System.out.print("请输入第二个日期(yyyy-MM-dd):");
String dateStr2 = scanner.nextLine();
Date date2 = dateFormat.parse(dateStr2);
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
if (cal1.before(cal2)) {
System.out.println(dateStr1 + " 在 " + dateStr2 + " 之前");
} else if (cal1.after(cal2)) {
System.out.println(dateStr1 + " 在 " + dateStr2 + " 之后");
} else {
System.out.println(dateStr1 + " 和 " + dateStr2 + " 相同");
}
long diff = Math.abs(date2.getTime() - date1.getTime());
long diffDays = diff / (24 * 60 * 60 * 1000);
System.out.println("两日期间隔 " + diffDays + " 天");
} catch (ParseException e) {
System.out.println("日期格式错误,请输入 yyyy-MM-dd 格式的日期");
}
}
}
```
运行程序后,会提示用户输入两个日期,格式为 yyyy-MM-dd。程序将使用DateFormat类将输入的字符串转换为Date对象,并使用Calendar类进行日期比较和计算间隔天数。最后输出判断结果和间隔天数。
示例输出:
```
请输入第一个日期(yyyy-MM-dd):2021-01-01
请输入第二个日期(yyyy-MM-dd):2021-01-10
2021-01-01 在 2021-01-10 之前
两日期间隔 9 天
```
#include<iostream> void main() { int year=2021,month,days=0; int dayinmonth[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int fday=5; int i; char ch; while(1) { while(1) { printf("Enter month in 2021 to display calen
这段代码看起来是一个计算日历的程序,它会根据用户输入的年份和月份来打印出对应的日历。具体来说,它首先定义了一个year变量并初始化为2021,然后定义了一个dayinmonth数组,用于保存每个月有多少天。接着定义了一个fday变量,表示2021年1月1日是星期几,这里初始化为5,表示星期五。
接下来的代码中,使用了两个while循环,第一个while循环用于输入月份,第二个while循环用于处理输入不合法的情况。在第一个while循环中,用户需要输入一个数字表示月份,然后程序会根据输入的月份和dayinmonth数组来计算出这个月的天数。然后根据fday变量来确定这个月的第一天是星期几,接着就可以按格式输出这个月的日历了。
需要注意的是,这段代码中存在一些问题,比如说:
1. 缺少头文件:代码中使用了printf函数和scanf函数,但并没有包含对应的头文件,所以在某些编译环境下会报错。
2. 函数签名不正确:代码中的main函数返回值类型应该是int,而不是void。
3. 大括号不匹配:代码中存在一处大括号不匹配的问题,这可能导致编译错误。
因此,建议在使用这段代码之前进行修正和测试。