gpt4 book ai didi

java - 仅打印工作日

转载 作者:太空宇宙 更新时间:2023-11-04 13:07:08 25 4
gpt4 key购买 nike

在过去的 4 个小时里,我一直被这个问题困扰,尝试了不同的策略,但在查看了此处和 Google 上的无数帖子后,这些策略并没有多大成功。基本上我想做的就是仅打印一周内周一至周五的营业工作日。我尝试在每次周末到来时增加一年中的某一天,但这当然会打乱之后几天的顺序。例如,而不是:

 Iteration: 0, 1, 2, 3, 4, 5, 6, 7, 8....

Day: (0)Friday, (1)Saturday, (2)Sunday, (3)Monday, (4)Tuesday, (5)Wednesday, (6)Thursday, (7)Friday, (8)Saturday....etc

我需要:

   Day: (0)Friday, (1)Monday, (2)Tuesday (3)Wednesday, (4)Thursday, (5)Friday, (6)Monday, (7)Tuesday, (8)Wednesday....etc

代码如下:

public static void date(int day) {
now = Calendar.getInstance();
//SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");//version 1
SimpleDateFormat format = new SimpleDateFormat("EEEE d MMMM yyyy"); //version 2

String[] days = new String[maxDayCount]; //limits the number of days to print out(ordinarily h)
now.add(Calendar.DAY_OF_YEAR, day + 1); //Increments from test count + 1 due to count starting at 0 (would be today). Increments the date to get from today.

int DayOfWeek = now.get(Calendar.DAY_OF_WEEK);
boolean WorkingDayCheck = ((DayOfWeek >= Calendar.MONDAY) && (DayOfWeek <= Calendar.FRIDAY));

if(WorkingDayCheck) {
days[day] = format.format(now.getTime());
} else {
//
}
now.add(Calendar.DAY_OF_MONTH, 1);
System.out.println("-----------Day " + day + ": " + String.valueOf(days[day])); //v2: print out each line
}//END OF METHOD: date

这个想法是,我在其他地方有一个迭代,它将日期数字传递给这个方法,以便它使用该数字然后打印出日期。我现在回到了最初的状态,然后尝试了很多事情,目前我正在使用WorkingDayCheck boolean 值进行检查,当周末到来时,打印输出当然会返回null。

小伙伴们有什么想法吗?感谢您抽出时间。

最佳答案

我认为这会解决您的问题。

首先,为什么每次输入方法时都要定义数组days,然后只在其中填充一个值?

您的String[] days = new String[maxDayCount];应该是成员变量而不是局部变量。所以在这个方法之外初始化这个数组。

还初始化另一个代表数组中最后一个空位置的int。 (默认为0)

public class Foo {
int maxDayCount = 365;
String[] days = new String[maxDayCount];
int finalIndex = 0;

public static void date(int day) {
now = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("EEEE d MMMM yyyy");

String[] days = new String[maxDayCount]; //limits the number of days to print out(ordinarily h)
now.add(Calendar.DAY_OF_YEAR, day + 1); //Increments from test count + 1 due to count starting at 0 (would be today). Increments the date to get from today.

int DayOfWeek = now.get(Calendar.DAY_OF_WEEK);
boolean WorkingDayCheck = ((DayOfWeek >= Calendar.MONDAY) && (DayOfWeek <= Calendar.FRIDAY));

if(WorkingDayCheck) {
days[finalIndex++] = format.format(now.getTime());
System.out.print("(" + (finalIndex - 1) + ")" + String.valueOf(days[finalIndex - 1]))
} else {
//
}
}
public static void main(String[]args) {
int day = 0;
while(finalIndex != maxDaysCount) {
date(day++);
}
}
}

现在,您的 days 数组将仅在各自的索引中填充工作日。例如,在 days[0] 中,days[0] 将是 Frid​​ay,然后 days[1] 将是 Saturday,依此类推,因为您有一个指针 finalIndex,它独立于从迭代中输入到方法中的 day 值。

关于java - 仅打印工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34323412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com