- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从两个日期之间的查询中检索更多数据。日期是该月第一周的第一天和该月最后一周的最后一天。准确地说,当前月份(例如)按原样具有范围日期(在区域设置上,星期一是一周的第一天):
from 2014-03-31 to 2014-05-04 (35 days)
问题是,数据检索只是工作日(例如:一周 5 天),但我必须计算 7 天的整个星期,因为每 7 天我都会在 ArrayList 中写入数据。
我正在构建一个代码来实现此目的,但不起作用,因为该代码只计算 33 天,而不是 35 天,我不明白为什么......
这是我的代码:
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date firstdayoftheweek = new Date();
try
{
firstdayoftheweek = formatter.parse("2014-03-31");
}
catch(ParseException e){}
String dateTemp = null;
for ( String[] result : results) // cicle for every query's row
{
count_row++;
if (count_row == 1)
{
Date dtActualDayQuery = new Date();
try
{
dtWd = formatter.parse(result[12]);
}
catch(ParseException e){}
int diffDays = Days.daysBetween(new DateTime(firstdayoftheweek), new DateTime(dtActualDayQuery)).getDays();
if (diffDays > 1)
{
count_row = (count_row + diffDays) -1;
}
}
else
{
Date dtprevious = new Date();
Date dtActualDayQuery = new Date();
try
{
dtprevious = formatter.parse(dateTemp);
dtActualDayQuery = formatter.parse(result[12]);
}
catch(ParseException e){}
int diffDays = Days.daysBetween(new DateTime(dtprevious), new DateTime(dtActualDayQuery)).getDays();
if (diffDays > 1)
{
count_row = (count_row + diffDays) -1;
}
}
dateTemp = result[12]; // Save the date for next comparison
// Do something every day of the week
if (((count_row) % 7) == 0)
{
// Do something every 7 days
}
}
不正确,我知道...但我想不出正确的解决方案...
谢谢!!
编辑:
我写了一个示例代码:
package test;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.Days;
public class Test
{
public static void main(String[] args)
{
int count = 0;
String[] month = {"2014-03-31", "2014-04-01", "2014-04-02", "2014-04-03", "2014-04-04",
"2014-04-07", "2014-04-08", "2014-04-09", "2014-04-10", "2014-04-11",
"2014-04-14", "2014-04-15", "2014-04-16", "2014-04-17", "2014-04-18",
"2014-04-21", "2014-04-22", "2014-04-23", "2014-04-24", "2014-04-25",
"2014-04-28", "2014-04-29", "2014-04-30", "2014-05-01", "2014-05-02"};
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date dt_1day_absolute = new Date();
try
{
dt_1day_absolute = formatter.parse("2014-03-31");
}
catch (ParseException e) {}
String dateTemp = null;
for (int i = 0; i < month.length; i++)
{
count++;
if (count == 1)
{
Date dtFromVector = new Date();
try
{
dtFromVector = formatter.parse(month[i]);
} catch (ParseException e){}
int diffDays = Days.daysBetween(new DateTime(dt_1day_absolute), new DateTime(dtFromVector)).getDays();
if (diffDays > 1)
{
count = (count + diffDays) - 1;
}
}
else
{
Date dtprev = new Date();
Date dtaft = new Date();
try
{
dtprev = formatter.parse(dateTemp);
dtaft = formatter.parse(month[i]);
}
catch (ParseException e) {}
int diffDays = Days.daysBetween(new DateTime(dtprev), new DateTime(dtaft)).getDays();
if (diffDays > 1)
{
count = (count + diffDays) - 1;
}
}
dateTemp = month[i];
System.out.println("Num Day: " + String.valueOf(count));
System.out.println("Date: " + month[i]);
if (((count) % 7) == 0)
{
System.out.println("---End week---");
System.out.println("");
}
}
}
}
我得到这个结果:
Num Day: 1
Date: 2014-03-31
Num Day: 2
Date: 2014-04-01
Num Day: 3
Date: 2014-04-02
Num Day: 4
Date: 2014-04-03
Num Day: 5
Date: 2014-04-04
Num Day: 8
Date: 2014-04-07
Num Day: 9
Date: 2014-04-08
Num Day: 10
Date: 2014-04-09
Num Day: 11
Date: 2014-04-10
Num Day: 12
Date: 2014-04-11
Num Day: 15
Date: 2014-04-14
Num Day: 16
Date: 2014-04-15
Num Day: 17
Date: 2014-04-16
Num Day: 18
Date: 2014-04-17
Num Day: 19
Date: 2014-04-18
Num Day: 22
Date: 2014-04-21
Num Day: 23
Date: 2014-04-22
Num Day: 24
Date: 2014-04-23
Num Day: 25
Date: 2014-04-24
Num Day: 26
Date: 2014-04-25
Num Day: 29
Date: 2014-04-28
Num Day: 30
Date: 2014-04-29
Num Day: 31
Date: 2014-04-30
Num Day: 32
Date: 2014-05-01
Num Day: 33
Date: 2014-05-02
我期望这个结果:
Num Day: 1
Date: 2014-03-31
Num Day: 2
Date: 2014-04-01
Num Day: 3
Date: 2014-04-02
Num Day: 4
Date: 2014-04-03
Num Day: 5
Date: 2014-04-04
Num Day: 6
not exists
Num Day: 7
not exists
---End week---
Num Day: 8
Date: 2014-04-07
Num Day: 9
Date: 2014-04-08
Num Day: 10
Date: 2014-04-09
Num Day: 11
Date: 2014-04-10
Num Day: 12
Date: 2014-04-11
Num Day: 13
not exists
Num Day: 14
not exists
---End week---
Num Day: 15
Date: 2014-04-14
Num Day: 16
Date: 2014-04-15
Num Day: 17
Date: 2014-04-16
Num Day: 18
Date: 2014-04-17
Num Day: 19
Date: 2014-04-18
Num Day: 20
not exists
Num Day: 21
not exists
---End week---
Num Day: 22
Date: 2014-04-21
Num Day: 23
Date: 2014-04-22
Num Day: 24
Date: 2014-04-23
Num Day: 25
Date: 2014-04-24
Num Day: 26
Date: 2014-04-25
Num Day: 27
not exists
Num Day: 28
not exists
---End week---
Num Day: 29
Date: 2014-04-28
Num Day: 30
Date: 2014-04-29
Num Day: 31
Date: 2014-04-30
Num Day: 32
Date: 2014-05-01
Num Day: 33
Date: 2014-05-02
Num Day: 34
not exists
Num Day: 35
not exists
---End week---
最佳答案
下一个解决方案应该会有帮助:
final DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd"); // like 'SimleDateFormat'
final List<String> month = Arrays.asList("2014-03-31", "2014-04-01", "2014-04-02", "2014-04-03", "2014-04-04",
"2014-04-07", "2014-04-08", "2014-04-09", "2014-04-10", "2014-04-11",
"2014-04-14", "2014-04-15", "2014-04-16", "2014-04-17", "2014-04-18",
"2014-04-21", "2014-04-22", "2014-04-23", "2014-04-24", "2014-04-25",
"2014-04-28", "2014-04-29", "2014-04-30", "2014-05-01", "2014-05-02");
final DateTime lastDate = dtf.parseDateTime(month.get(month.size() - 1)); // last date in 'month' array
final MutableDateTime dateIterator = new MutableDateTime(dtf.parseDateTime(month.get(0))); // first date in 'month' array
int count = 0;
for (;;dateIterator.addDays(1)) // start iteration day by day
{
count++;
final String dateAsString = dtf.print(dateIterator); // convert iterator to String
if (month.contains(dateAsString)) // 'month' array contains current date
{
System.out.println("Date: " + dateAsString);
}
else
{
if (dateIterator.getDayOfWeek() == 1 // current date is first day of week but record is absent in db
&& dateIterator.isAfter(lastDate)) // and all records from db are processed
// so let's break for-loop
{
break; // break for-loop
}
System.out.println("not exists");
}
System.out.println("Num Day: " + String.valueOf(count));
}
关于java - 循环计算整周并跳过天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23324514/
SQL 和一般开发的新手,我有一个表(COUNTRIES),其中包含字段(INDEX、NAME、POPULATION、AREA) 通常我添加一个客户端(Delphi)计算字段(DENSITY)和 On
我想使用 calc(100%-100px),但在我的 demo 中不起作用由于高度只接受像素,因此如何将此百分比值转换为像素。 最佳答案 以下将为您提供高度: $(window).height();
我正在尝试在 MySQL 中添加列并动态填充其他列。 例如我有一张表“数字”并具有第 1 列、第 2 列、第 3 列,这些总数应填充在第 4 列中 最佳答案 除非我误解了你的问题,否则你不只是在寻找:
我想返回简单计算的结果,但我不确定如何执行此操作。我的表格如下: SELECT COUNT(fb.engineer_id) AS `total_feedback`, SUM(fb.ra
我一直在尝试做这个程序,但我被卡住了,我仍然是一个初学者,任何帮助将不胜感激。我需要程序来做 打印一个 10 X 10 的表格,其中表格中的每个条目都是行号和列号的总和 包含一个累加器,用于计算所有表
这个计算背后一定有一些逻辑。但我无法得到它。普通数学不会导致这种行为。谁能帮我解释一下原因 printf ("float %f\n", 2/7 * 100.0); 结果打印 1.000000 为什么会
我想计算从 0 到 (n)^{1/2} - 1 的数字的 AND每个数字从 0 到 (n)^{1/2} - 1 .我想在 O(n) 中执行此操作时间,不能使用 XOR、OR、AND 运算。 具体来说,
如何在 Excel 中将公式放入自定义数字格式?例如(出于说明目的随机示例), 假设我有以下数据: 输入 输出 在不编辑单元格中的实际数据的情况下,我想显示单元格中的值除以 2,并保留两位小数: 有没
每次我在 Flutter 应用程序中调用计算()时,我都会看到内存泄漏,据我所知,这基本上只是一种生成隔离的便捷方法。我的应用程序内存占用增加并且在 GC 之后永远不会减少。 我已将我的代码简化为仅调
我有数字特征观察 V1通过 V12用于目标变量 Wavelength .我想计算 Vx 之间的 RMSE列。数据格式如下。 每个变量“Vx”以 5 分钟的间隔进行测量。我想计算所有 Vx 变量的观测值
我正在寻找一种使用 C 语言计算文件中未知字符数的简单方法。谢谢你的帮助 最佳答案 POSIX 方式(可能是您想要的方式): off_t get_file_length( FILE *file ) {
我正在使用 Postgres,并且我正试图围绕如何在连续日期跨度中得出第一个开始日期的问题进行思考。例如 :- ID | Start Date | End Date =================
我有一个订单表格,我在其中使用 jQuery 计算插件来汇总总数。 此求和工作正常,但生成的“总和”存在问题。总之,我希望用逗号替换任何点。 代码的基础是; function ($this) {
我在使用 double 变量计算简单算术方程时遇到问题。 我有一个具有 double 属性 Value 的组件,我将此属性设置为 100。 然后我做一个简单的减法来检查这个值是否真的是 100: va
我在这里看到了一些关于 CRC 32 计算的其他问题。但没有一个让我满意,因此是这样。 openssl 库是否有任何用于计算 CRC32 的 api 支持?我已经在为 SHA1 使用 openssl,
当我在PHP日期计算中遇到问题时,我感到惊讶。 $add = '- 30 days'; echo date('Y-m-01', strtotime($add)); // result is 2017-
我正在使用 javascript 进行练习,我编写了这个脚本来计算 2 个变量的总和,然后在第三个方程中使用这个总和!关于如何完成这项工作的任何想法都将非常有用! First Number:
我有一个来自EAC的提示单和一个包含完整专辑的FLAC文件。 我正在尝试制作一些python脚本来播放文件,因为我需要能够设置在flac文件中开始的位置。 如何从CueSheet格式MM:SS:FF转
这个问题已经有答案了: Adding two numbers concatenates them instead of calculating the sum (24 个回答) 已关闭去年。 我有一个
4000 我需要上面字段 name="quantity" 和 id="price" 中的值,并使用 javascript 函数进行计算,并将其显示在字段 id= 中仅当我单击计算按钮时才显示“总
我是一名优秀的程序员,十分优秀!