【发布时间】:2017-06-06 08:01:47
【问题描述】:
我是 QT C++ 的初学者,我正在尝试在 label_j 上打印 Julian day,以考虑数组列表中提到的值。我无法做到这一点。请你看看并纠正它。提前非常感谢。
当前月份是从 UTC 获取的, 如果月份等于 jan 则打印 0, 月份相等,然后打印 31, 月份等于三月,然后打印 59,依此类推,直到十二月。
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);
}
【问题讨论】:
-
你的代码能编译吗?您的
switch语法似乎错误,即您从未指定大小写值:case 1: ...。您将字符串分配给 int,即month="January";。您将 int 分配给 QString,即answer=month_arr[0];。 -
@m7913d ...谢谢你的关心,那么,相同的确切代码是什么,请你在这里告诉我。非常感谢
标签: c++ arrays switch-statement qt4 qt-creator