博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gym 101206L Daylight Saving Time 根据年月日计算星期
阅读量:6035 次
发布时间:2019-06-20

本文共 1186 字,大约阅读时间需要 3 分钟。

题意:

[3月的第二个周日02:00:00 , 3月的第二个周日03:00:00) 这个区间都不是PST或PDT,[11月的第一个周日01:00:00 , 11月的第一个周日02:00:00) 这个区间既是PST又是PDT,中间的是PDT,两边的是PST。

分析:

计算星期几可以直接用公式进行计算

 

计算3月的第二个周日为哪一天:day=15-ReturnWeekDay(year,3,1)

计算11月的第一个周日为哪一天:day=8-ReturnWeekDay(year,11,1)

这个公式可以自行推导

#include 
using namespace std;char s[50];struct Time{ int mth,day; int hor,mnt,scd; Time() {}; Time(int m,int d,int h,int mi,int s) { mth=m,day=d; hor=h,mnt=mi,scd=s; }} ti;int ReturnWeekDay( unsigned int iYear, unsigned int iMonth, unsigned int iDay ){ //http://blog.csdn.net/areskris/article/details/8661983 int iWeek=0; unsigned int y=0, c=0, m=0, d=0; if(iMonth==1 || iMonth==2 ) { c=( iYear-1)/ 100; y=( iYear-1)% 100; m=iMonth+12; d=iDay; } else { c=iYear/100; y=iYear%100; m=iMonth; d=iDay; } iWeek=y+y/4+c/4-2*c+26*(m+1)/10+d-1; //蔡勒公式 iWeek=iWeek >= 0 ?(iWeek % 7):(iWeek%7+7); //iWeek为负时取模 if(iWeek==0) iWeek=7; //星期日不作为一周的第一天 return iWeek;}int circle(int k){ int res=0; for(int i=k; i

 

转载于:https://www.cnblogs.com/pach/p/7193383.html

你可能感兴趣的文章
WindowsServer 2008 AD搭建FTP隔离用户
查看>>
lmdb
查看>>
大文件如何传输,大文件的传输方式有哪些?
查看>>
docker的持久化存储和共享存储和网络架构
查看>>
撕掉普通程序员的标签,这才是真正的大数据工程师!
查看>>
Windows下安装Sqlmap过程及遇到的问题
查看>>
BSD常见分支
查看>>
开挂了!这5个Word技巧真的是超级实用,值得收藏!
查看>>
三分钟了解实时流式大数据分析
查看>>
留与后人一段面试的总结
查看>>
Spring基于XML方式配置事务
查看>>
T-MBA学习营 | 寒窗十数载,我们原来并不会学习?
查看>>
log4j.properties模板
查看>>
Linux:信号(上)
查看>>
vmware虚拟化无法迁移虚拟机
查看>>
SQL UPDATE实现多表更新
查看>>
最近有个需求,就是把某个网址跳转到另外一个网址
查看>>
innobackupex 在增量的基础上增量备份
查看>>
Windows Server 2012 R2 DirectAccess功能测试(2)App1服务器安装及配置
查看>>
基于清单的启动器的实现
查看>>