下面是一个简单的 Java 程序示例,用于打印指定时间段内每个日期是星期几:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了铁西免费建站欢迎大家使用!
```java
import java.time.DayOfWeek;
import java.time.LocalDate;
public class BirthdayPrint {
public static void main(String[] args) {
int startYear = 2022; // 开始年份
int endYear = 2025; // 结束年份
for (int year = startYear; year = endYear; year++) {
for (int month = 1; month = 12; month++) {
for (int day = 1; day = 31; day++) { // 最大值为 31,超出月份天数的部分会自动忽略
try {
LocalDate date = LocalDate.of(year, month, day);
DayOfWeek dow = date.getDayOfWeek();
System.out.println(date + " is " + dow);
} catch (Exception e) { // 如果日期非法,则会抛出异常,这里捕获并忽略即可
}
}
}
}
}
}
```
此程序使用 Java 8 中的 `LocalDate` 类和 `DayOfWeek` 枚举类型,循环遍历指定时间范围内的所有日期,并通过 `getDayOfWeek()` 方法获取每个日期对应的星期几。最后将所有结果输出到控制台。
需要注意的是,在本程序中,我们没有做任何错误处理,例如输入的起始和结束年份必须合法、超出日期范围的日期会被自动忽略等等情况需要根据实际需求进行适当处理。
不太懂你什么意思,LocalDate 是类型,只能说最后用LocalDate 来接收,你可以接收一个生日字符串,然后通过LocalDate.parse("2022-09-23",DateTimeFormatter.ofPattern("yyyy-MM-dd")) 来转换成LocalDate,或者直接接收3个int类型变量,通过LocalDate.of(2022,9,23)来创建一个LocalDate日期。
编写一个简单的生日快乐APP
一、关闭之前的helloworld程序
点击file,然后close project,就完成关闭了。
二、创建一个新的happybirthday程序
三、下面开始整个APP的修改
1、如何查看Androidstudio中activity_main.xml的源代码,在图中 灰色部分现在是Design,点到code就会出现activity_main_xml的代码了。
2、进行如下代码的修改。把根布局改成相对布局 androidx.constraintlayout.widget.ConstraintLayout改为RelativeLayout
把多余的代码删除掉 ,并将文本内容改为android:text="祝你生日快乐!"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"
并可以修改文字的大小,颜色,添加边框.。代码如下:
3、在左侧目录下,res是存放资源文件的(图片放进来);java是存放java代码的;mainfests是存放配置文件的。因此将图片复制在最侧res目录下。
4、将代码补充完整
代码:
?xml version="1.0" encoding="utf-8"?
RelativeLayout xmlns:android=""
xmlns:app=""
xmlns:tools=""
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
TextView
android:layout_margin="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="祝你生日快乐!"
android:textColor="@android:color/holo_orange_light"
android:textSize="22dp"
/
ImageView
android:layout_centerInParent="true"
android:src="@drawable/img"
android:layout_width="match_parent"
android:layout_height="wrap_content" /
/RelativeLayout
5、最后的效果如图所示
6、可在手机中看到happybirthday的程序包,打开便是上面的画面。
import java.util.Calendar;
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;
}
}
}