java如何从当前开始计算一年的旬
时间: 2024-02-09 07:08:21 浏览: 27
Java中可以使用Java.time包中的LocalDate类来计算一年的旬。首先,获取当前日期可以使用LocalDate.now()方法。然后,使用getDayOfYear()方法获取当前日期在一年中的天数。接下来,使用(dayOfYear-1)/30来计算当前日期所在的旬。具体代码如下:
```
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate currentDate = LocalDate.now();
int dayOfYear = currentDate.getDayOfYear();
int xun = (dayOfYear-1)/30 + 1;
System.out.println("当前日期所在的旬为:" + xun);
}
}
```
注意:这里计算旬的方法是将一年分为10个旬,每个旬为30天。实际情况可能会因为历法或者其他原因而有所不同。
相关问题
java 获取当前时间前一年
要获取当前时间前一年的日期,可以使用Java中的LocalDate类和DateTimeFormatter类。以下是一种方法:
如果使用Java 8及以上版本,可以使用LocalDate类的minusYears()方法来获取当前日期前一年的日期。首先,获取当前日期并减去一年,然后将结果格式化为指定的日期字符串格式。
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String\[\] args) {
LocalDate currentDate = LocalDate.now(); // 获取当前日期
LocalDate previousYearDate = currentDate.minusYears(1); // 获取当前日期前一年的日期
String formattedDate = previousYearDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 将日期格式化为指定格式的字符串
System.out.println(formattedDate); // 输出前一年的日期
}
}
```
如果使用Java 7或更早的版本,可以使用Calendar类来进行日期计算。首先,获取当前日期并创建一个Calendar实例,然后将日期设置为当前日期,并减去一年。最后,将结果格式化为指定的日期字符串格式。
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String\[\] args) {
Calendar calendar = Calendar.getInstance(); // 获取Calendar实例
calendar.setTime(new Date()); // 设置日期为当前日期
calendar.add(Calendar.YEAR, -1); // 减去一年
Date previousYearDate = calendar.getTime(); // 获取前一年的日期
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 创建日期格式化对象
String formattedDate = dateFormat.format(previousYearDate); // 将日期格式化为指定格式的字符串
System.out.println(formattedDate); // 输出前一年的日期
}
}
```
以上是两种常用的方法来获取Java中当前时间前一年的日期。
#### 引用[.reference_title]
- *1* *2* [Java 获取日期前一年、月、日,指定日期的前几天,后几天](https://blog.csdn.net/m0_54790214/article/details/129280230)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [Java 获取当前时间前一周、前一月、前一年的时间](https://blog.csdn.net/weixin_42411248/article/details/123030449)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
每个月分上中下三旬,java从当前时间所在的旬开始计算,计算出一年的旬,可以根据月份自动判断旬末是30,还是31,亦或是28
可以使用Java.time包中的LocalDate类来计算一年的旬。根据题目需求,每个月分上中下三旬,即一个月分为三部分,每部分10天。可以使用以下代码实现:
```
import java.time.LocalDate;
import java.time.Month;
public class Main {
public static void main(String[] args) {
LocalDate currentDate = LocalDate.now();
int currentYear = currentDate.getYear();
Month currentMonth = currentDate.getMonth();
int currentDayOfMonth = currentDate.getDayOfMonth();
int xun = ((currentDayOfMonth-1)/10) + 1;
// 计算当前月份的天数
int daysInMonth;
if (currentMonth == Month.FEBRUARY) {
if (currentDate.isLeapYear()) {
daysInMonth = 29;
} else {
daysInMonth = 28;
}
} else if (currentMonth == Month.APRIL || currentMonth == Month.JUNE || currentMonth == Month.SEPTEMBER || currentMonth == Month.NOVEMBER) {
daysInMonth = 30;
} else {
daysInMonth = 31;
}
// 输出一年的旬
for (int i = currentMonth.getValue(); i <= 12; i++) {
for (int j = xun; j <= 3; j++) {
System.out.println(currentYear + "-" + String.format("%02d", i) + "-" + String.format("%02d", j*10) + " 至 " + currentYear + "-" + String.format("%02d", i) + "-" + String.format("%02d", (j*10 + 9 < daysInMonth ? j*10+9 : daysInMonth)));
}
xun = 1;
}
}
}
```
这里的daysInMonth变量为当前月份的天数,根据月份来判断是否是闰年以及每个月的天数。然后使用嵌套循环遍历一年的旬,从当前月份和旬开始往后遍历,如果当前旬已经是第三旬,则从下一个月的第一旬开始遍历。最后输出每个旬的起止日期。