- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我的程序输出:
Select A Month-Year:
1. 8-2012
2. 9-2012
3. 10-2012
4. 11-2012
5. 12-2012
6. 1-2013
在用户选择例如下个月的 9-2012 之后,我想知道 2012 年 9 月 (9-2012) 有多少天。
那么我如何获得所有属于周末(周六和周日)的日期,以便我也可以省略这些日期?
我目前正在使用 ctime
库来获取日期。
下面是我到目前为止所做的,但是对于二月,每个闰年(4 年)是 29 天。
我如何做一个逻辑来处理它。我知道最近的一年是 this year 2012(今年),下一年是 2016 年,但我希望我的程序能够处理至少 40 年后的情况。
if(month==4||month==6||month==9||month==11)
{
totalDays = 30;
}
if(month==1 || month==3 || month==5 || month==7 || month==8 || month== 10 || month==12 )
{
totalDays = 30;
}
if(month==2)
{
//February
totalDays = 28;
}
最佳答案
mktime
可以为您完成几乎所有的工作。要查找两个日期之间的天数,每个日期均由 struct tm
指定,您可以使用:
int days_between (struct tm *tsa, struct tm *tsb) {
time_t a = mktime(tsa);
time_t b = mktime(tsb);
return (b - a)/(60*60*24);
}
这会将秒数除以一天中的秒数。
所以一年中的天数可以这样计算:
int days_of_year (int y) {
struct tm tsa = {0};
struct tm tsb = {0};
tsa.tm_mday = 1;
tsa.tm_year = y - 1900;
tsb.tm_mday = 1;
tsb.tm_year = y + 1 - 1900;
return days_between(&tsa, &tsb);
}
一个月中的天数是相似的,但您可以保持年份不变,并在 tsb
中使用下一个月。
要计算工作日的数量,前 28 天总是至少有 8 天。然后,根据该月有多少天,您必须考虑剩余天数。 tm_wday
字段为 struct tm
中的日期提供自周日以来的天数。
int dss = tsa.tm_wday;
weekdays = 8;
switch (days) {
case 31: if (dss == 0 || dss == 6) weekdays += 1;
dss = (dss + 1) % 7;
case 30: if (dss == 0 || dss == 6) weekdays += 1;
dss = (dss + 1) % 7;
case 29: if (dss == 0 || dss == 6) weekdays += 1;
default: break;
}
完整的示例可以在 http://ideone.com/qQo3U 找到
要计算闰年,公历的逻辑是:如果年份能被 4 整除,则为闰年,除非它也能被 100 整除,在这种情况下,如果它是能被 400 整除。
int is_leap_year (int y) {
return (y % 4) ? 0 : ((y % 100) ? 1 : !(y % 400));
}
但是,mktime
已经知道了这一点,并且可以为您解决,正如已经证明的那样。
关于c++ - 我如何获得一个月中的总天数并忽略周末,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971380/
有人可以帮我解决这个问题吗?当填写周五、周六或周日时,需要返回"is",而在所有其他情况下,则需要返回“否”。每次它都以“JA”结尾...... 代码: // Nieuwe Array aan
我知道,标题并不具体,但我对 DatePicker 有疑问。我尝试禁用国庆节、周末和今天之后的 48 小时。目前我这样做了: 隐藏今天 + 48 小时,我使用 minDate: 3 隐藏周末 隐藏国庆
我必须计算以下两个日期之间的周末计数和假期计数。 var startDate = new Date("01/02/2014"); var endDate = new Date("02/
我正在尝试编写一个脚本来实现以下目的: 我需要根据一天中的时间和星期几将我页面上某个元素的颜色从绿色更改为红色。因此,例如,在星期六我需要一个不同于星期一的时间窗口。 我正在努力寻找有用的东西。我找到
给定 postgres 中的 2 个时间戳,你如何在不计算整个星期六和星期日的情况下计算时差? 或 如何计算给定时间间隔内的周六和周日的数量? 最佳答案 以下函数返回两个日期之间的完整周末天数。由于您
我无法在没有周末的情况下呈现日期时间图表。怎么做到的? 这是示例代码 ( http://jsfiddle.net/LLExL/1720/ ): $('#container').highcharts({
ax.plot_date((dates, dates), (highs, lows), '-') 我目前正在使用此命令通过 Matplotlib 绘制财务高点和低点.效果很好,但如何删除 x 轴上因没
从今天早上开始,我无法使用原始 HTTP 协议(protocol)在用户对象上设置 orgUnitPath。 PATCH /admin/directory/v1/users/testuser_1440
我有这些 Dag DAG_A(每天运行)、DAG_B(周一至周五运行)和 DAG_C(周六和周日运行),其中 DAG_A 依赖于 DAG_B 和 DAG_C。我尝试使用 External Task S
我正在使用 JQuery UI Datepicker Disbale Next Day After 12pm 中的代码禁用周末、公共(public)假期和第二天(如果在上午 10 点之后选择),但我不
我是一名优秀的程序员,十分优秀!