根据朱利安日历计算月份
calculation of month as per Julian Calendar
我是QT C 的初学者,我试图在label_j
上打印Julian Day,尊重数组列表中提到的值。我无法做到。请您看到并纠正它。非常感谢。
本月是从UTC获取的 如果一个月相等,则打印0, 一个月相等,然后打印31, 一个月相等的三月,然后打印59,依此类推,直到达到12月为止。
void MainWindow::getJulianDay()
{
int month_arr[]={0,31,59,90,120,151,181,212,243,273,304,334};
QString January, February, March, April, May, June, July, August, September, October, November, December;
QDateTime local(QDateTime::currentDateTimeUtc());
QDateTime UTC(local.toUTC());
QString month=UTC.toString("MMMM");
switch (month)
{
case January:
month=month_arr[0];
break;
case February:
month=month_arr[1];
break;
case March:
month=month_arr[2];
break;
case April:
month=month_arr[3];
break;
case May:
month=month_arr[4];
break;
case June:
month=month_arr[5];
break;
case July:
month=month_arr[6];
break;
case August:
month=month_arr[7];
break;
case September:
month=month_arr[8];
break;
case October:
month=month_arr[9];
break;
case November:
month=month_arr[10];
break;
case December:
month=month_arr[11];
break;
default: month=invalid;
break;
ui->label_j->setText(month);
}
我看到了两个主要错误:
首先,您的case
语句条件为空。您应该这样做:
switch(variable) {
case condition1:
...
break;
case condition2:
...
break;
...
default:
...
break;
}
所以,您的代码变为:
switch (month);
{
case 1:
month="January";
answer=month_arr[0];
break;
case 2:
month="February";
answer=month_arr[1];
break;
...
default:
month="invalid";
break;
}
第二个主要问题是ui->label_j->setText(answer);
应该超出switch
循环。目前,此语句将永远不会执行。
编辑:正如M7913D注意的那样,您有很多类型错误。查看变量的类型!
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 计算缩放多边形的比例,得到给定的多边形面积
- 在C++中如何在没有pow的情况下进行基础计算
- 根据朱利安日历计算月份
- 在C或c++中计算日历日期(在给定日期上加N天)