作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 C 函数,如果给定完整日期,它可以查找星期几。当我在我的笔记本电脑上使用 gcc 编译该函数时,该函数完美运行。
但是当我使用 avr-gcc 编译 Atmega8 的函数时,它给出了错误的答案。谁能帮我找出原因吗?
这是 C 函数
unsigned char *getDay(int year, int month, int day) {
static unsigned char *weekdayname[] = {"MON", "TUE",
"WED", "THU", "FRI", "SAT", "SUN"};
size_t JND = \
day \
+ ((153 * (month + 12 * ((14 - month) / 12) - 3) + 2) / 5) \
+ (365 * (year + 4800 - ((14 - month) / 12))) \
+ ((year + 4800 - ((14 - month) / 12)) / 4) \
- ((year + 4800 - ((14 - month) / 12)) / 100) \
+ ((year + 4800 - ((14 - month) / 12)) / 400) \
- 32045;
return weekdayname[JND % 7];
}
例如,当我在笔记本电脑上的函数中输入日期 01/01/2015 时,函数会给出正确的星期几(星期四),但在 atmega8 上,它会给出星期一。
更新:sujithvm 给出的函数有效! :D
但是我还是不明白为什么原来的功能在avr上不起作用。我尝试了 uint32_t 和 int32_t。然而,看起来这一天总是相差 3。在 JND 中添加 3 给出了正确的日期。这有点奇怪。
最佳答案
尝试使用此代码
unsigned char *getDay(int y, int m, int d) {
static unsigned char *weekdayname[] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
int weekday = (d += m < 3 ? y-- : y - 2 , 23 * m / 9 + d + 4 + y / 4 - y / 100 + y / 400) % 7;
return weekdayname[weekday];
}
关于c - Atmega8 中的星期几功能未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25227291/
本文实例为大家分享了php实现按天数、星期、月份查询的搜索框,搜索时候展示数据的统计图,主要展示图形的效果,供大家参考,具体内容如下 1.ajax.php ?
星期-时间时刻散点平面坐标系统计大小量,Python,matplotlib,散点图(1) 假设现在有一堆年月日时数据,形如t=2022-07-31 23:45:12,每一条这样的时刻都对应发生了一次事
我想以 EEEE d, MMMM 格式自定义此显示日、日期和月份格式。 提前致谢。 最佳答案 这是完全合乎逻辑的。你可以试试这个 public static class EndDatePickerFr
我是一名优秀的程序员,十分优秀!