我正在寻找使用JodaTime创建固定日常工作的任何方法。我有一个JSpinner来设置整数值,我想得到这个值并创建日期。例如:JSpinner有15个,我想创建日期def thermal_lim_ineq_con(model, i, j, k):
if line_loading_limit == True:
P_branch_ij = (model.V_magn[i, k]**2) * np.float(real(Y_matrix[i, j])) - model.V_magn[i, k] * model.V_magn[j, k] * (np.float(real(Y_matrix[i, j])) * cos(model.V_angle[i, k]-model.V_angle[j, k]) + np.float(imag(Y_matrix[i,j])) * sin(model.V_angle[i, k]-model.V_angle[j, k]))
Q_branch_ij = (model.V_magn[i, k]**2) * np.float(imag(Y_matrix[i, j])) + model.V_magn[i, k] * model.V_magn[j, k] * (np.float((real(Y_matrix[i, j]))) * sin(model.V_angle[i, k]-model.V_angle[j, k]) - np.float(imag(Y_matrix[i,j])) * cos(model.V_angle[i, k]-model.V_angle[j, k]))
return P_branch_ij**2 + Q_branch_ij**2 <= limits_flows[i, j]**2
else:
return Constraint.Skip
,2016-09-15
,2016-10-15
。
我怎么能用JodaTime做到这一点?
答案 0 :(得分:4)
Joda-Time项目现在处于维护模式,团队建议迁移到java.time类。 java.time框架内置于Java 8及更高版本中。
大部分java.time功能都被反向移植到Java 6&amp; ThreeTen-Backport中的7,并进一步适应Android中的ThreeTenABP(见How to use…)。
java.time.LocalDate
LocalDate
类表示没有时间且没有时区的仅限日期的值。
您可以指定年,月和日。
LocalDate ld = LocalDate.of( 2016 , 1 , 15 );
你可以换几个月。 java.time类使用Immutable Objects模式,因此基于原始值生成新的新对象。
LocalDate september = ld.withMonth( 9 ); // 1-12 for January-December.
您可以添加/减去月份。
LocalDate nextMonth = ld.plusMonths( 1 );
LocalDate priorMonth = ld.minusMonths( 1 );
您可以使用任何LocalDate并将日期调整为15日。
LocalDate today = LocalDate.now( ZoneId.of( "America/Montreal" ) );
LocalDate fifteenthThisMonth = today.withDayOfMonth( 15 );
如果月份的某个月份的数字无效,则会引发DateTimeException
的陷阱,例如2月份的31。
顺便说一句,您可能会发现YearMonth
或MonthDay
类很方便,而Month
枚举也可以。
如果您必须使用Joda-Time,它会提供与java.time.LocalDate
非常相似的LocalDate
类。
LocalDate ld = new LocalDate( 2016 , 1 , 7 );
LocalDate fifteenthSameMonth = ld.withDayOfMonth( 15 );