java计算周数和剩余天数

笔记2024-02-127 人已阅来源:网络

Java是一门流行的编程语言,可以用于各种类型的计算。计算一个给定日期所在的周数和剩余天数是常见需求,下面我们来看看如何在Java中实现这个功能。

计算周数:

import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.MONDAY); //将一周的第一天设置为星期一
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //将当前日期设置为本周第一天
//获取当前日期的年份和月份
int year = Integer.parseInt(sdf.format(c.getTime()).substring(0, 4));
int month = Integer.parseInt(sdf.format(c.getTime()).substring(5, 7));
//获取本月第一个星期一的日期
while (c.get(Calendar.MONTH) == month - 1) {
if (c.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY) {
break;
}
c.add(Calendar.DATE, 1);
}
//计算当前日期是本年的第几周
int week = c.get(Calendar.WEEK_OF_YEAR);
System.out.println(year + "年" + month + "月" + "第" + week + "周");
}
}

上面代码中我们首先创建了一个SimpleDateFormat对象,设置日期格式为“年-月-日”;接着创建了一个Calendar对象,将一周的第一天设置为星期一,将当前日期设置为本周第一天。

然后我们通过循环寻找本月第一个星期一的日期,一旦找到就break跳出循环;接着通过Calendar类的get方法获取当前日期是本年的第几周。

计算剩余天数:

import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
//设置时间为指定日期
c.set(Calendar.YEAR, 2021);
c.set(Calendar.MONTH, 9);
c.set(Calendar.DAY_OF_MONTH, 20);
//获取该日期所在月份的天数
int daysInMonth = c.getActualMaximum(Calendar.DAY_OF_MONTH);
//计算剩余天数
int remainingDays = daysInMonth - c.get(Calendar.DAY_OF_MONTH) - 1;
System.out.println("距离" + sdf.format(c.getTime()) + "月末还有" + remainingDays + "天");
}
}

上面代码中我们同样创建了一个SimpleDateFormat对象,设置日期格式为“年-月-日”;接着创建一个Calendar对象,将指定日期设置为时间。

然后我们通过Calendar类的getActualMaximum方法获取该日期所在月份的天数,再通过Calendar类的get方法获取该日期是本月的第几天,并计算出剩余天数。

综上所述,我们可以通过上述方法计算出任意日期所在的周数和剩余天数。