首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取给定年份和月份中一周的第十天之后的第九天的日期。

获取给定年份和月份中一周的第十天之后的第九天的日期。
EN

Code Golf用户
提问于 2023-02-01 22:16:22
回答 1查看 220关注 0票数 1

Introduction

在美国,全国选举通常在11月第一个星期一之后的第一个星期二举行。

挑战

编写一个以一年为整数,以一对(一周中的日为字符,序号为整数)的程序,并输出日期为“yyyy”-记住,第二对是在第一对之后。使用这个作为灵感:https://codegolf.stackexchange.com/questions/178227/get-the-date-of-the-nth-day-of-week-in-a-given-year-and-month[][1]

示例输入输出

示例输入:

  • 2021星期二1星期一1
  • 2020年11月1日星期二星期一1
  • 2020年12月2日星期五星期三1
  • 2019年4月1日星期三1星期五1
  • 2月20日至23日星期二4日星期三1
  • 2月20日至23日星期三5星期四1
  • 2022年12月5日星期日55

预期产出:

  • "2021-11-02“
  • "2020-11-03“
  • "2020-12-11“
  • "2019-04-10“
  • "2023-02-28“
  • "NA“
  • "NA“

注意:表示为"NA“的输出可以是任何负的查找结果,如null,但不是错误。1:获取给定年份和月份的一周第n天的日期.

EN

回答 1

Code Golf用户

发布于 2023-02-03 16:22:37

,262个字节

代码语言:javascript
复制
import."time"
func f(y,m,d,e string,n,o int)string{t,_:=Parse("2006January",y+m)
D,i,j:=Hour*24,1,1
for t.Weekday().String()!=e{t=t.Add(D)}
for;j<o;j++{t=t.Add(D*7)}
for t.Weekday().String()!=d{t=t.Add(D)}
for;i<n;i++{t=t.Add(D*7)}
return t.Format("2006-01-02")}

在网上试试!

与我的在给定的年份和月份中,获取一周的第n天的日期解决方案非常相似。

对于NA测试用例,它将持续到下一个月/年,直到在o-th e日之后找到n-th d日。

解释

代码语言:javascript
复制
import."time"
func f(y,m,d,e string,n,o int)string{
t,_:=Parse("2006January",y+m)
D:=Hour*24

一些初始设置:在年度m中获取月份的第一次y,并定义Day变量。

代码语言:javascript
复制
for t.Weekday().String()!=e{t=t.Add(D)}
for j:=1;j<o;j++{t=t.Add(D*7)}

跳到o-th e日。

代码语言:javascript
复制
for t.Weekday().String()!=d{t=t.Add(D)}
for i:=1;i<n;i++{t=t.Add(D*7)}

跳到n-th d日。

代码语言:javascript
复制
return t.Format("2006-01-02")}

返回格式化日期。

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/257325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档