Android如何识别一周中的同一天

sixian

为了管理日期,我使用了Calendar类。我将时间戳保存在数据库中,使用

日历时间戳= Calendar.getInstance();

我可以使用长值存储日期来从数据库中保存和检索日期。

这是我的问题:当我要存储时间戳时,我需要知道数据库中是否已经存在属于同一周的时间戳。为此,我认为我可以使用以下两种方法:

timestamp.get(Calendar.YEAR)timestamp.get(Calendar.WEEK_OF_YEAR)

来唯一标识一个星期,但是对于连续几天都属于连续两年的星期,情况并非如此。

这是我在2014年最后一周得到的一个例子。

2014年12月27日,星期六年:2014年星期:52

2014年12月28日,星期日:2014年的一周:1

2014年12月29日,星期一年份:2014星期:1

2014年12月30日,星期二:2014年星期:1

2014年12月31日,星期三:2014年星期:1

2015年1月1日,星期四:2015年星期:1

2015年1月2日,星期五年:2015年星期:1

2015年1月3日,星期六年:2015年星期:1

2015年1月4日,星期日:2015年的星期:2

从2014年12月28日到2015年3月1日这一天属于同一周(在Java中,该周从星期日开始),但是它们的年份不同,因此这对夫妇(YEAR,WEEK_OF_YEAR)没有给我他们属于同一周的信息。

我该如何解决?

sixian

正如@basil所建议的那样,我尝试了Joda-Time库,并在那里找到了解决问题的方法。要获取一年中的星期,我可以使用方法getWeekOfWeekyear()并获得年份,我可以使用方法getWeekyear()

这样,这两个值唯一地标识了属于同一周的日期,该周从星期一开始,到星期日结束(与Java日历类相比,这是另一个附加值)。

以下是该问题的相同示例。

DateTime[] timestamp = new DateTime[10];

for(int i=0; i<10; i++){
   //set the start of the period
   DateTime time = new DateTime(2014, 12, 27, 18, 30, 50);
   //add i days to the start date
   timestamp[i] = time.plus(Period.days(i));

   int weekYear = timestamp[i].getWeekyear();
   int weekOfWeekyear = timestamp[i].getWeekOfWeekyear();

   Log.d(Constants.LOG_TAG, timestamp[i].toString("EEEE, MMMM d, yyyy") + " | year.week = " + weekYear + "." + weekOfWeekyear);
}

结果是:

2014年12月27日,星期六| 年周= 2014.52

2014年12月28日,星期日| 年周= 2014.52

2014年12月29日,星期一| 年周= 2015.1

2014年12月30日,星期二| 年周= 2015.1

2014年12月31日,星期三| 年周= 2015.1

2015年1月1日,星期四| 年周= 2015.1

2015年1月3日,星期六| 年周= 2015.1

2015年1月4日,星期日| 年周= 2015.1

2015年1月5日,星期一| 年周= 2015.2

使用该库似乎还有许多其他优点,它将对我必须执行的其他计算很有用。

谢谢@basil。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Teradata SQL同一周的上一年同一天

一周同一天的 6 周移动平均线

单击日期名称,然后从Fullcalendar中选择一周中同一天的所有日期

R-在一周的同一天查找多个变量的变化并进行汇总

计算在定义的时间范围内一周中同一天的每日总和与平均值之间的差异。SQL 10g Oracle

Android:如何在DateRangePicker中设置一周的第一天?

如何确定一天属于哪一周

如何通过设置一周的第一天来排序一周中的几天?

如何控制台记录一周中的一天,直到一周结束的日子?

遍历一周中的每一天

一周中最好的一天

如何计算同一天发生的客户行为?

如何将时差限制在同一天?

如何计算同一天的持续时间?

使日期从R中的同一天开始

<=今天同一天的日期

为什么Calendar.getDisplayName在给定毫秒的情况下总是返回一周的同一天?

如何使用JavaScript获取一周中的第一天和最后一天

在 php 中获取一周的第一天/最后一天?

如何找到一周中最多的一天?

如何在Swift中更改一周的第一天

如何在Swift中使用NSDate检查一周中的某一天?

如何使用DateTimePicker获取一周中的一天的名称

如何为所有星期的一周中的每一天创建空条目

xts - 如何在一周中的每一天进行子集化

如何在sqlite3中获取一周的最后一天?

如何在 JavaScript 中使用 getDate 排除一周中的某一天?

如何製作一周中的一天計算器?

如何在nodejs中的本地时间确定两个日期是同一天?