标签: date-arithmetic

给定日期范围如何计算部分或全部在该范围内的周末数?

给定日期范围如何计算部分或全部在该范围内的周末数?

(要求的一些定义:将'周末'表示为周六和周日.日期范围包括在内,即结束日期是"全部或部分"范围的一部分意味着周末的任何部分都在日期范围内意味着计算整个周末.)

为了简化我想象你实际上只需要知道持续时间和一周的哪一天是初始的一天......

我现在很好,它将涉及做7的整数除法和一些逻辑,根据余数加1,但我不能弄清楚什么...

Python中答案的额外分数;-)

编辑

这是我的最终代码.

周末是星期五和星期六(因为我们计算的是住宿的夜晚),从星期一开始,天数为0.我使用了onebyone的算法和Tom的代码布局.非常感谢大家.

def calc_weekends(start_day, duration):
    days_until_weekend = [5, 4, 3, 2, 1, 1, 6]
    adjusted_duration = duration - days_until_weekend[start_day]
    if adjusted_duration < 0:
        weekends = 0
    else:
        weekends = (adjusted_duration/7)+1
    if start_day == 5 and duration % 7 == 0: #Saturday to Saturday is an exception
        weekends += 1
    return weekends

if __name__ == "__main__":
    days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    for start_day in range(0,7):
        for duration in range(1,16):
            print "%s …
Run Code Online (Sandbox Code Playgroud)

python date date-arithmetic

1
推荐指数
1
解决办法
5321
查看次数

Oracle(10g)相当于DATEADD(工作日,-3,GETDATE())

我正在寻找相当于Oracle的Oracle(10g):

DATEADD(weekday, -3, GETDATE())
Run Code Online (Sandbox Code Playgroud)

来自T-SQL(SQL Server).这会从当前日期减去3个工作日.我不关心假期或类似的事情(我可以​​将时间截断自己).只是排除周末是好的.

oracle oracle10g date-arithmetic

1
推荐指数
1
解决办法
5946
查看次数

日期之间的天数

我有两个约会:start dateend date.我想计算end date和之间的天数start date.如果start date1-11-2011,end date2-11-2012,而且我放了start date - end date,它将显示天数1,并且不会计算月份和年份.我怎么能用红宝石做到这一点?请帮助我.

ruby date date-arithmetic

1
推荐指数
1
解决办法
1258
查看次数

将日期添加到日期SQL

我试图在SQL中添加几个月的现有日期.显示的新列将包含后续列而不是日期列.我在select语句中遇到错误.你帮忙吗?

Create table auctions(
item varchar2(50),
datebought date,
datesold date,
days number
);
Insert into auctions values (‘Radio’,’12-MAY-2001’,’21-MAY-2001’,9);
Select item,datebought,datesold,ADD MONTHS(datesold,3)”followup” from auctions;
Run Code Online (Sandbox Code Playgroud)

sql oracle date-arithmetic

1
推荐指数
1
解决办法
1万
查看次数

如何在Ruby中获取文件的年龄?

如何在Ruby中获取文件的使用年限?

请注意,我需要一种方法来准确获取给定文件的年龄; 这意味着需要考虑闰年.

我需要这个程序,用于在文件达到特定年龄(例如20天或更早的文件)后删除文件.

按年龄,我指的是给定文件的最后访问时间,因此如果在过去20天或更长时间内未访问过某个文件,则会删除该文件.

在Perl中,我知道你可以用它date::calc来计算自公元1年以来的日期,我曾经有一个使用Common-Lisp实现的Common-Lisp程序date::calc,但我不再那样了,所以我一直在寻找替代方案,Ruby似乎具备所需的功能.

ruby file-io date-arithmetic

1
推荐指数
2
解决办法
3481
查看次数

从出生日期起共同LISP的年龄计算

我试图使用给定的出生日期(表格的一串YYYY-MM-DD)计算一个人在Common Lisp中的年龄但我得到以下错误:

错误:"2013-12-10"' is not of the expected type数字'

我的代码如下

(defun current-date-string ()
  "Returns current date as a string."
  (multiple-value-bind (sec min hr day mon yr dow dst-p tz)
                       (get-decoded-time)
    (declare (ignore sec min hr dow dst-p tz))
    (format nil "~A-~A-~A" yr mon day)))

(defvar (dob  1944-01-01))
  (let ((age (- (current-date-string) dob))))
Run Code Online (Sandbox Code Playgroud)

谁可以在这方面给我帮助?我怀疑当前日期是字符串格式,如我的输入,但我们如何将其转换为与我的输入相同的日期格式?

lisp common-lisp date-arithmetic

1
推荐指数
1
解决办法
849
查看次数

如何编写整洁的代码来获取上一个生日日期?

我知道出生那天,让我们说:1996-12-12
我知道今天是:2014-11-12

现在我想得到上一个生日的日期.我已经编写了这个解决方案,但我不喜欢代码的复杂性.如何为其他程序员编写更易读的内容?

$lstrBirthday       = '1996-12-12';
$lstrLastBirtday    = (strtotime(date('Y').date('-m-d', strtotime($lstrBirthday))) > strtotime('now')) ? (date('Y') - 1).date('-m-d', strtotime($lstrBirthday)) : date('Y').date('-m-d', strtotime($lstrBirthday));
Run Code Online (Sandbox Code Playgroud)

谢谢!

php date strtotime date-arithmetic

1
推荐指数
1
解决办法
149
查看次数

为NSDate添加30秒

如何将NSDate秒转换为秒?我需要它在几秒钟内,以便我可以添加30秒到日期,然后转换回来NSDate安排本地通知.任何更好的方法也是受欢迎的.

cocoa-touch nsdate date-arithmetic ios uilocalnotification

1
推荐指数
1
解决办法
2803
查看次数

如何在Oracle中比较日期?

我遇到的问题是我认为是一个简单的问题,但谷歌搜索并没有帮助大量的负担.可能我对我正在寻找的东西不好了.

SELECT ORDER_NUMB, CUSTOMER_NUMB, ORDER_DATE
FROM ORDERS
WHERE FORMAT(ORDER_DATE, 'DD-MMM-YYYY') = '07-JUN-2000';
Run Code Online (Sandbox Code Playgroud)

它告诉我我使用的是无效的标识符.我尝试使用MON而不是MMM,但这也无济于事.

不确定它是否有任何区别,但我使用的是Oracle SQL Developer.

sql oracle date-arithmetic

1
推荐指数
1
解决办法
2万
查看次数

Oracle SQL - 将varchar2转换为日期

我将varchar2字段转换为日期格式时遇到问题.我使用datatyp varchar2获得了2列,一个称为qtime,另一个称为ztime.这两个字段都包含此格式的字符串(fe 152015 - >将是时间戳15:20:15).

出于报告原因,我需要将这些字段转换为日期格式,之后我想减去(qtime-ztime)字段并将它们转换为格式[hh](操作01:20:00之后的fe将是 - > 01 ).是否可以在Oracle SQL 12c中使用它?我现在面临的最大问题是我没有将这些字符串转换为日期格式.

select TO_DATE(qtime,'MM/DD/YYYY hh24:mi:ss') 只是给了我

ORA-01861:"文字与格式字符串不匹配"

select TO_DATE(qtime,'hh24mmss') 给了我一个错误的日期

2018年3月1日

select TO_TIMESTAMP(qtime,'hh24mmss') 给了我一个错误的日期

2018年3月1日在正确的时间与FE 15时20分15秒,0000000

提前谢谢,任何帮助表示赞赏

注意:我只对数据库Oracle 12c具有读取权限,因此我需要在语句中进行此操作

sql oracle date-arithmetic

1
推荐指数
1
解决办法
136
查看次数