taskjuggler 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (563) hide show
  1. data/CHANGELOG +37 -5
  2. data/README.rdoc +4 -2
  3. data/benchmarks/UTF-8-Strings.rb +58 -0
  4. data/benchmarks/css/tjmanual.css +0 -1
  5. data/benchmarks/htmltaskreport-1.html +47702 -0
  6. data/benchmarks/htmltaskreport-2.html +23345 -0
  7. data/benchmarks/htmltaskreport-3.html +23265 -0
  8. data/benchmarks/htmltaskreport-4.html +22135 -0
  9. data/benchmarks/profile.clt +36082 -0
  10. data/benchmarks/tj3.profile +0 -0
  11. data/benchmarks/tj3.profile.grind +6185 -0
  12. data/benchmarks/tj3.profile.symbols +432 -0
  13. data/benchmarks/tj3.profile.txt +448 -0
  14. data/data/tjp.vim +689 -0
  15. data/doc/AppConfig.html +26 -2
  16. data/doc/CHANGELOG.html +60 -8
  17. data/doc/COPYING.html +26 -2
  18. data/doc/Diff/Hunk.html +26 -2
  19. data/doc/Diff.html +26 -2
  20. data/doc/Diffable.html +26 -2
  21. data/doc/DiffableString.html +26 -2
  22. data/doc/Object.html +26 -104
  23. data/doc/README_rdoc.html +39 -7
  24. data/doc/RuntimeConfig.html +26 -2
  25. data/doc/String.html +26 -2
  26. data/doc/TaskJuggler/Account.html +27 -3
  27. data/doc/TaskJuggler/AccountAttribute.html +30 -6
  28. data/doc/TaskJuggler/AccountScenario.html +28 -4
  29. data/doc/TaskJuggler/Allocation.html +33 -9
  30. data/doc/TaskJuggler/AllocationAttribute.html +31 -7
  31. data/doc/TaskJuggler/AttributeBase.html +162 -111
  32. data/doc/TaskJuggler/AttributeDefinition.html +26 -2
  33. data/doc/TaskJuggler/AttributeOverwrite.html +26 -2
  34. data/doc/TaskJuggler/BatchProcessor.html +26 -2
  35. data/doc/TaskJuggler/Booking.html +29 -5
  36. data/doc/TaskJuggler/BookingListAttribute.html +29 -5
  37. data/doc/TaskJuggler/BooleanAttribute.html +30 -6
  38. data/doc/TaskJuggler/CSVFile.html +26 -2
  39. data/doc/TaskJuggler/CellSettingPattern.html +26 -2
  40. data/doc/TaskJuggler/CellSettingPatternList.html +26 -2
  41. data/doc/TaskJuggler/Charge.html +30 -6
  42. data/doc/TaskJuggler/ChargeListAttribute.html +29 -5
  43. data/doc/TaskJuggler/ChargeSet.html +26 -2
  44. data/doc/TaskJuggler/ChargeSetListAttribute.html +30 -6
  45. data/doc/TaskJuggler/CollisionDetector.html +26 -2
  46. data/doc/TaskJuggler/ColumnListAttribute.html +28 -4
  47. data/doc/TaskJuggler/ColumnTable.html +26 -2
  48. data/doc/TaskJuggler/Daemon.html +26 -2
  49. data/doc/TaskJuggler/DataCache.html +26 -2
  50. data/doc/TaskJuggler/DataCacheEntry.html +26 -2
  51. data/doc/TaskJuggler/DateAttribute.html +30 -6
  52. data/doc/TaskJuggler/DefinitionListAttribute.html +28 -4
  53. data/doc/TaskJuggler/DependencyListAttribute.html +30 -6
  54. data/doc/TaskJuggler/DurationAttribute.html +31 -7
  55. data/doc/TaskJuggler/FileList.html +26 -2
  56. data/doc/TaskJuggler/FileRecord.html +26 -2
  57. data/doc/TaskJuggler/FixnumAttribute.html +28 -4
  58. data/doc/TaskJuggler/FlagListAttribute.html +30 -6
  59. data/doc/TaskJuggler/FloatAttribute.html +29 -5
  60. data/doc/TaskJuggler/FormatListAttribute.html +29 -5
  61. data/doc/TaskJuggler/GanttChart.html +26 -2
  62. data/doc/TaskJuggler/GanttContainer.html +26 -2
  63. data/doc/TaskJuggler/GanttHeader.html +26 -2
  64. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -2
  65. data/doc/TaskJuggler/GanttLine.html +27 -3
  66. data/doc/TaskJuggler/GanttLoadStack.html +26 -2
  67. data/doc/TaskJuggler/GanttMilestone.html +26 -2
  68. data/doc/TaskJuggler/GanttRouter.html +26 -2
  69. data/doc/TaskJuggler/GanttTaskBar.html +26 -2
  70. data/doc/TaskJuggler/HTMLDocument.html +26 -2
  71. data/doc/TaskJuggler/HTMLElements.html +623 -0
  72. data/doc/TaskJuggler/HTMLGraphics.html +26 -2
  73. data/doc/TaskJuggler/ICalReport.html +864 -0
  74. data/doc/TaskJuggler/ICalendar/Component.html +969 -0
  75. data/doc/TaskJuggler/ICalendar/Event.html +742 -0
  76. data/doc/TaskJuggler/ICalendar/Journal.html +722 -0
  77. data/doc/TaskJuggler/ICalendar/Person.html +633 -0
  78. data/doc/TaskJuggler/ICalendar/Todo.html +789 -0
  79. data/doc/TaskJuggler/ICalendar.html +1035 -0
  80. data/doc/TaskJuggler/Interval.html +99 -172
  81. data/doc/TaskJuggler/IntervalList.html +31 -7
  82. data/doc/TaskJuggler/JobInfo.html +26 -2
  83. data/doc/TaskJuggler/Journal.html +26 -2
  84. data/doc/TaskJuggler/JournalEntry.html +26 -2
  85. data/doc/TaskJuggler/JournalEntryList.html +26 -2
  86. data/doc/TaskJuggler/KeywordArray.html +26 -2
  87. data/doc/TaskJuggler/KeywordDocumentation.html +26 -2
  88. data/doc/TaskJuggler/Limits/Limit.html +124 -49
  89. data/doc/TaskJuggler/Limits.html +139 -156
  90. data/doc/TaskJuggler/LimitsAttribute.html +39 -14
  91. data/doc/TaskJuggler/ListAttributeBase.html +35 -11
  92. data/doc/TaskJuggler/Log.html +26 -2
  93. data/doc/TaskJuggler/LogFile.html +26 -2
  94. data/doc/TaskJuggler/LogicalAttribute.html +26 -2
  95. data/doc/TaskJuggler/LogicalExpression.html +26 -2
  96. data/doc/TaskJuggler/LogicalExpressionAttribute.html +35 -11
  97. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +35 -11
  98. data/doc/TaskJuggler/LogicalFlag.html +26 -2
  99. data/doc/TaskJuggler/LogicalFunction.html +28 -4
  100. data/doc/TaskJuggler/LogicalOperation.html +26 -2
  101. data/doc/TaskJuggler/ManagerResponsibilities.html +26 -2
  102. data/doc/TaskJuggler/ManagerStatusRecord.html +26 -2
  103. data/doc/TaskJuggler/Message.html +26 -2
  104. data/doc/TaskJuggler/MessageHandler.html +108 -62
  105. data/doc/TaskJuggler/Navigator.html +26 -2
  106. data/doc/TaskJuggler/NavigatorElement.html +26 -2
  107. data/doc/TaskJuggler/NikuProject.html +26 -2
  108. data/doc/TaskJuggler/NikuReport.html +27 -3
  109. data/doc/TaskJuggler/NikuResource.html +26 -2
  110. data/doc/TaskJuggler/NodeListAttribute.html +31 -7
  111. data/doc/TaskJuggler/PlaceHolderCell.html +26 -2
  112. data/doc/TaskJuggler/ProcessIntercom.html +26 -2
  113. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -2
  114. data/doc/TaskJuggler/Project.html +1236 -973
  115. data/doc/TaskJuggler/ProjectBroker.html +26 -2
  116. data/doc/TaskJuggler/ProjectBrokerIface.html +26 -2
  117. data/doc/TaskJuggler/ProjectFileParser.html +29 -4
  118. data/doc/TaskJuggler/ProjectFileScanner.html +56 -31
  119. data/doc/TaskJuggler/ProjectRecord.html +26 -2
  120. data/doc/TaskJuggler/ProjectServer.html +26 -2
  121. data/doc/TaskJuggler/ProjectServerIface.html +26 -2
  122. data/doc/TaskJuggler/PropertyAttribute.html +35 -11
  123. data/doc/TaskJuggler/PropertyList.html +26 -2
  124. data/doc/TaskJuggler/PropertySet.html +126 -106
  125. data/doc/TaskJuggler/PropertyTreeNode.html +595 -551
  126. data/doc/TaskJuggler/Query.html +127 -100
  127. data/doc/TaskJuggler/RTFHandlers.html +26 -2
  128. data/doc/TaskJuggler/RTFNavigator.html +26 -2
  129. data/doc/TaskJuggler/RTFQuery.html +28 -4
  130. data/doc/TaskJuggler/RTFReport.html +26 -2
  131. data/doc/TaskJuggler/RTFReportLink.html +26 -2
  132. data/doc/TaskJuggler/RTFWithQuerySupport.html +26 -2
  133. data/doc/TaskJuggler/RealFormat.html +26 -2
  134. data/doc/TaskJuggler/RealFormatAttribute.html +31 -7
  135. data/doc/TaskJuggler/ReferenceAttribute.html +58 -34
  136. data/doc/TaskJuggler/Report.html +427 -284
  137. data/doc/TaskJuggler/ReportBase.html +28 -102
  138. data/doc/TaskJuggler/ReportContext.html +26 -2
  139. data/doc/TaskJuggler/ReportScenario.html +633 -0
  140. data/doc/TaskJuggler/ReportServer.html +26 -2
  141. data/doc/TaskJuggler/ReportServerIface.html +26 -2
  142. data/doc/TaskJuggler/ReportServerRecord.html +26 -2
  143. data/doc/TaskJuggler/ReportServlet.html +26 -2
  144. data/doc/TaskJuggler/ReportTable.html +26 -2
  145. data/doc/TaskJuggler/ReportTableCell.html +26 -2
  146. data/doc/TaskJuggler/ReportTableColumn.html +26 -2
  147. data/doc/TaskJuggler/ReportTableLegend.html +26 -2
  148. data/doc/TaskJuggler/ReportTableLine.html +26 -2
  149. data/doc/TaskJuggler/Resource.html +225 -163
  150. data/doc/TaskJuggler/ResourceListAttribute.html +71 -47
  151. data/doc/TaskJuggler/ResourceListRE.html +26 -2
  152. data/doc/TaskJuggler/ResourceScenario.html +645 -603
  153. data/doc/TaskJuggler/RichText.html +26 -2
  154. data/doc/TaskJuggler/RichTextAttribute.html +53 -29
  155. data/doc/TaskJuggler/RichTextDocument.html +26 -2
  156. data/doc/TaskJuggler/RichTextElement.html +26 -2
  157. data/doc/TaskJuggler/RichTextFunctionExample.html +26 -2
  158. data/doc/TaskJuggler/RichTextFunctionHandler.html +26 -2
  159. data/doc/TaskJuggler/RichTextImage.html +26 -2
  160. data/doc/TaskJuggler/RichTextIntermediate.html +29 -5
  161. data/doc/TaskJuggler/RichTextParser.html +26 -2
  162. data/doc/TaskJuggler/RichTextScanner.html +26 -2
  163. data/doc/TaskJuggler/RichTextSnip.html +26 -2
  164. data/doc/TaskJuggler/RichTextSyntaxRules.html +26 -2
  165. data/doc/TaskJuggler/Scenario.html +26 -2
  166. data/doc/TaskJuggler/ScenarioData.html +95 -28
  167. data/doc/TaskJuggler/ScenarioListAttribute.html +39 -15
  168. data/doc/TaskJuggler/Scoreboard.html +137 -73
  169. data/doc/TaskJuggler/ScoreboardInterval.html +1116 -0
  170. data/doc/TaskJuggler/SheetHandlerBase.html +26 -2
  171. data/doc/TaskJuggler/SheetReceiver.html +26 -2
  172. data/doc/TaskJuggler/SheetSender.html +26 -2
  173. data/doc/TaskJuggler/Shift.html +27 -3
  174. data/doc/TaskJuggler/ShiftAssignment.html +27 -3
  175. data/doc/TaskJuggler/ShiftAssignments.html +174 -149
  176. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +41 -16
  177. data/doc/TaskJuggler/ShiftScenario.html +26 -2
  178. data/doc/TaskJuggler/SimpleQueryExpander.html +26 -2
  179. data/doc/TaskJuggler/SortListAttribute.html +35 -11
  180. data/doc/TaskJuggler/StatusSheetReceiver.html +26 -2
  181. data/doc/TaskJuggler/StatusSheetReport.html +26 -2
  182. data/doc/TaskJuggler/StatusSheetSender.html +26 -2
  183. data/doc/TaskJuggler/StdIoWrapper.html +26 -2
  184. data/doc/TaskJuggler/StringAttribute.html +39 -15
  185. data/doc/TaskJuggler/SymbolAttribute.html +35 -11
  186. data/doc/TaskJuggler/SyntaxReference.html +26 -2
  187. data/doc/TaskJuggler/TOCEntry.html +26 -2
  188. data/doc/TaskJuggler/TSResourceRecord.html +26 -2
  189. data/doc/TaskJuggler/TSTaskRecord.html +26 -2
  190. data/doc/TaskJuggler/TableColumnDefinition.html +26 -2
  191. data/doc/TaskJuggler/TableOfContents.html +26 -2
  192. data/doc/TaskJuggler/TableReport.html +239 -214
  193. data/doc/TaskJuggler/TagFile/TagFileEntry.html +841 -0
  194. data/doc/TaskJuggler/TagFile.html +817 -0
  195. data/doc/TaskJuggler/Task.html +27 -3
  196. data/doc/TaskJuggler/TaskDepListAttribute.html +47 -23
  197. data/doc/TaskJuggler/TaskDependency.html +26 -2
  198. data/doc/TaskJuggler/TaskListAttribute.html +47 -23
  199. data/doc/TaskJuggler/TaskListRE.html +26 -2
  200. data/doc/TaskJuggler/TaskScenario.html +2235 -2178
  201. data/doc/TaskJuggler/TernarySearchTree.html +26 -2
  202. data/doc/TaskJuggler/TextFormatter.html +26 -2
  203. data/doc/TaskJuggler/TextParser/Macro.html +26 -2
  204. data/doc/TaskJuggler/TextParser/MacroTable.html +26 -2
  205. data/doc/TaskJuggler/TextParser/Pattern.html +26 -2
  206. data/doc/TaskJuggler/TextParser/Rule.html +26 -2
  207. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +32 -8
  208. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +39 -15
  209. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +26 -2
  210. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +119 -86
  211. data/doc/TaskJuggler/TextParser/Scanner.html +317 -291
  212. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +26 -2
  213. data/doc/TaskJuggler/TextParser/StackElement.html +26 -2
  214. data/doc/TaskJuggler/TextParser/State.html +26 -2
  215. data/doc/TaskJuggler/TextParser/StateTransition.html +26 -2
  216. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +26 -2
  217. data/doc/TaskJuggler/TextParser/TokenDoc.html +26 -2
  218. data/doc/TaskJuggler/TextParser.html +85 -61
  219. data/doc/TaskJuggler/TextReport.html +26 -2
  220. data/doc/TaskJuggler/TimeInterval.html +841 -0
  221. data/doc/TaskJuggler/{IntervalListAttribute.html → TimeIntervalListAttribute.html} +33 -9
  222. data/doc/TaskJuggler/TimeSheet.html +26 -2
  223. data/doc/TaskJuggler/TimeSheetReceiver.html +26 -2
  224. data/doc/TaskJuggler/TimeSheetRecord.html +27 -3
  225. data/doc/TaskJuggler/TimeSheetReport.html +29 -5
  226. data/doc/TaskJuggler/TimeSheetSender.html +26 -2
  227. data/doc/TaskJuggler/TimeSheetSummary.html +26 -2
  228. data/doc/TaskJuggler/TimeSheets.html +26 -2
  229. data/doc/TaskJuggler/Tj3.html +150 -111
  230. data/doc/TaskJuggler/Tj3AppBase.html +26 -2
  231. data/doc/TaskJuggler/Tj3Client.html +26 -2
  232. data/doc/TaskJuggler/Tj3Daemon.html +26 -2
  233. data/doc/TaskJuggler/Tj3Man.html +26 -2
  234. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -2
  235. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -2
  236. data/doc/TaskJuggler/Tj3SsSender.html +26 -2
  237. data/doc/TaskJuggler/Tj3TsReceiver.html +26 -2
  238. data/doc/TaskJuggler/Tj3TsSender.html +26 -2
  239. data/doc/TaskJuggler/Tj3TsSummary.html +26 -2
  240. data/doc/TaskJuggler/TjException.html +26 -2
  241. data/doc/TaskJuggler/TjRuntimeError.html +26 -2
  242. data/doc/TaskJuggler/TjTime.html +539 -477
  243. data/doc/TaskJuggler/TjpExample.html +26 -2
  244. data/doc/TaskJuggler/TjpExportRE.html +240 -161
  245. data/doc/TaskJuggler/TjpSyntaxRules.html +4236 -3844
  246. data/doc/TaskJuggler/URLParameter.html +26 -2
  247. data/doc/TaskJuggler/UserManual.html +26 -2
  248. data/doc/TaskJuggler/VimSyntax.html +31 -7
  249. data/doc/TaskJuggler/WebServer.html +26 -2
  250. data/doc/TaskJuggler/WelcomePage.html +26 -2
  251. data/doc/TaskJuggler/WorkingHours.html +227 -152
  252. data/doc/TaskJuggler/WorkingHoursAttribute.html +62 -38
  253. data/doc/TaskJuggler/XMLBlob.html +26 -2
  254. data/doc/TaskJuggler/XMLComment.html +26 -2
  255. data/doc/TaskJuggler/XMLDocument.html +26 -2
  256. data/doc/TaskJuggler/XMLElement.html +26 -2
  257. data/doc/TaskJuggler/XMLNamedText.html +26 -2
  258. data/doc/TaskJuggler/XMLText.html +26 -2
  259. data/doc/TaskJuggler.html +486 -427
  260. data/doc/index.html +801 -659
  261. data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
  262. data/doc/lib/taskjuggler/Account_rb.html +1 -1
  263. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
  264. data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
  265. data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
  266. data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
  267. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
  268. data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
  269. data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
  270. data/doc/lib/taskjuggler/Booking_rb.html +1 -1
  271. data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
  272. data/doc/lib/taskjuggler/Charge_rb.html +1 -1
  273. data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
  274. data/doc/lib/taskjuggler/FileList_rb.html +1 -1
  275. data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
  276. data/doc/lib/{ruby-signal-bug_rb.html → taskjuggler/HTMLElements_rb.html} +9 -9
  277. data/doc/lib/{exchangebug_rb.html → taskjuggler/ICalendar_rb.html} +9 -9
  278. data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
  279. data/doc/lib/taskjuggler/Interval_rb.html +1 -1
  280. data/doc/lib/taskjuggler/Journal_rb.html +1 -1
  281. data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
  282. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
  283. data/doc/lib/taskjuggler/Limits_rb.html +1 -1
  284. data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
  285. data/doc/lib/taskjuggler/Log_rb.html +1 -1
  286. data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
  287. data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
  288. data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
  289. data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
  290. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
  291. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
  292. data/doc/lib/taskjuggler/Project_rb.html +1 -1
  293. data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
  294. data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
  295. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
  296. data/doc/lib/taskjuggler/Query_rb.html +1 -1
  297. data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
  298. data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
  299. data/doc/lib/taskjuggler/Resource_rb.html +1 -1
  300. data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
  301. data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
  302. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
  303. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
  304. data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
  305. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
  306. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
  307. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
  308. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
  309. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
  310. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
  311. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
  312. data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
  313. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
  314. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
  315. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
  316. data/doc/lib/taskjuggler/RichText_rb.html +1 -1
  317. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
  318. data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
  319. data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
  320. data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
  321. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
  322. data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
  323. data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
  324. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
  325. data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
  326. data/doc/lib/taskjuggler/Shift_rb.html +1 -1
  327. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
  328. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
  329. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
  330. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
  331. data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
  332. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
  333. data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
  334. data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
  335. data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
  336. data/doc/lib/taskjuggler/Task_rb.html +1 -1
  337. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
  338. data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
  339. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
  340. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
  341. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
  342. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
  343. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
  344. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
  345. data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
  346. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
  347. data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
  348. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
  349. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
  350. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
  351. data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
  352. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
  353. data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
  354. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
  355. data/doc/lib/taskjuggler/TjException_rb.html +1 -1
  356. data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
  357. data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
  358. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
  359. data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
  360. data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
  361. data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
  362. data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
  363. data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
  364. data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
  365. data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
  366. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
  367. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
  368. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
  369. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
  370. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
  371. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
  372. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
  373. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
  374. data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
  375. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
  376. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
  377. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
  378. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
  379. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
  380. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
  381. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
  382. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
  383. data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
  384. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
  385. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
  386. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
  387. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
  388. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
  389. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
  390. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
  391. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
  392. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
  393. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
  394. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
  395. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
  396. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
  397. data/doc/lib/taskjuggler/reports/ICalReport_rb.html +71 -0
  398. data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
  399. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
  400. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
  401. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
  402. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
  403. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
  404. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
  405. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
  406. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
  407. data/doc/lib/taskjuggler/reports/Report_rb.html +5 -1
  408. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
  409. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
  410. data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
  411. data/doc/lib/taskjuggler/reports/TagFile_rb.html +71 -0
  412. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
  413. data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
  414. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
  415. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
  416. data/doc/lib/tj3_rb.html +1 -1
  417. data/doc/lib/tj3client_rb.html +1 -1
  418. data/doc/lib/tj3d_rb.html +1 -1
  419. data/doc/lib/tj3man_rb.html +1 -1
  420. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  421. data/doc/lib/tj3ss_sender_rb.html +1 -1
  422. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  423. data/doc/lib/tj3ts_sender_rb.html +1 -1
  424. data/doc/lib/tj3ts_summary_rb.html +1 -1
  425. data/lib/taskjuggler/Account.rb +1 -1
  426. data/lib/taskjuggler/AccountScenario.rb +1 -1
  427. data/lib/taskjuggler/Allocation.rb +5 -5
  428. data/lib/taskjuggler/AttributeBase.rb +30 -22
  429. data/lib/taskjuggler/Attributes.rb +80 -78
  430. data/lib/taskjuggler/Booking.rb +2 -2
  431. data/lib/taskjuggler/Charge.rb +3 -3
  432. data/lib/taskjuggler/ICalendar.rb +251 -0
  433. data/lib/taskjuggler/Interval.rb +215 -53
  434. data/lib/taskjuggler/IntervalList.rb +5 -5
  435. data/lib/taskjuggler/Limits.rb +79 -69
  436. data/lib/taskjuggler/LogicalFunction.rb +2 -2
  437. data/lib/taskjuggler/MessageHandler.rb +11 -6
  438. data/lib/taskjuggler/Project.rb +208 -95
  439. data/lib/taskjuggler/ProjectFileParser.rb +2 -2
  440. data/lib/taskjuggler/ProjectFileScanner.rb +7 -6
  441. data/lib/taskjuggler/PropertySet.rb +1 -5
  442. data/lib/taskjuggler/PropertyTreeNode.rb +21 -16
  443. data/lib/taskjuggler/Query.rb +10 -7
  444. data/lib/taskjuggler/Resource.rb +6 -1
  445. data/lib/taskjuggler/ResourceScenario.rb +85 -69
  446. data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
  447. data/lib/taskjuggler/ScenarioData.rb +11 -1
  448. data/lib/taskjuggler/Scoreboard.rb +8 -1
  449. data/lib/taskjuggler/Shift.rb +1 -1
  450. data/lib/taskjuggler/ShiftAssignments.rb +22 -20
  451. data/lib/taskjuggler/Task.rb +1 -1
  452. data/lib/taskjuggler/TaskJuggler.rb +65 -51
  453. data/lib/taskjuggler/TaskScenario.rb +486 -419
  454. data/lib/taskjuggler/TextParser/Scanner.rb +22 -11
  455. data/lib/taskjuggler/TimeSheets.rb +1 -1
  456. data/lib/taskjuggler/Tj3Config.rb +1 -1
  457. data/lib/taskjuggler/TjTime.rb +7 -3
  458. data/lib/taskjuggler/TjpSyntaxRules.rb +157 -23
  459. data/lib/taskjuggler/VimSyntax.rb +18 -0
  460. data/lib/taskjuggler/WorkingHours.rb +20 -4
  461. data/lib/taskjuggler/apps/Tj3.rb +16 -1
  462. data/lib/taskjuggler/reports/GanttLine.rb +1 -1
  463. data/lib/taskjuggler/reports/ICalReport.rb +136 -0
  464. data/lib/taskjuggler/reports/NikuReport.rb +1 -1
  465. data/lib/taskjuggler/reports/Report.rb +59 -0
  466. data/lib/taskjuggler/reports/ReportBase.rb +2 -67
  467. data/lib/taskjuggler/reports/TableReport.rb +9 -8
  468. data/lib/taskjuggler/reports/TagFile.rb +120 -0
  469. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
  470. data/lib/taskjuggler/reports/TjpExportRE.rb +33 -9
  471. data/manual/Installation +126 -0
  472. data/spec/ICalendar_spec.rb +45 -0
  473. data/spec/IntervalList_spec.rb +11 -11
  474. data/tasks/changelog.rake +150 -60
  475. data/tasks/gem.rake +1 -0
  476. data/tasks/vim.rake +2 -2
  477. data/test/TestSuite/Export-Reports/refs/Booking.tjp +1 -1
  478. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  479. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +10 -1
  480. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +1 -1
  481. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  482. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  483. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  484. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  485. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  486. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  487. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  488. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  489. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  490. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  491. data/test/TestSuite/{Scheduler/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  492. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  493. data/test/TestSuite/Scheduler/Correct/Duration.tjp +3 -3
  494. data/test/TestSuite/Scheduler/Errors/R.html +113 -0
  495. data/test/TestSuite/Scheduler/Errors/allocate_no_assigned.tjp +15 -0
  496. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjmanual.css +0 -1
  497. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjreport.css +0 -0
  498. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/details.png +0 -0
  499. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-green.png +0 -0
  500. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-red.png +0 -0
  501. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-yellow.png +0 -0
  502. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resource.png +0 -0
  503. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resourcegroup.png +0 -0
  504. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/task.png +0 -0
  505. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/taskgroup.png +0 -0
  506. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-down.png +0 -0
  507. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-flat.png +0 -0
  508. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-up.png +0 -0
  509. data/test/TestSuite/Scheduler/Errors/overbooked_duration.tjp +11 -0
  510. data/test/TestSuite/Scheduler/Errors/overbooked_effort.tjp +11 -0
  511. data/test/TestSuite/Scheduler/Errors/overbooked_length.tjp +13 -0
  512. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/scripts/wz_tooltip.js +0 -0
  513. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  514. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  515. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +5 -2
  516. data/test/TestSuite/Syntax/Errors/scenario_after_tracking.tjp +8 -0
  517. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  518. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  519. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  520. data/test/test_Limits.rb +38 -30
  521. data/test/test_Scheduler.rb +2 -2
  522. data/test/test_ShiftAssignments.rb +8 -8
  523. data/test/test_WorkingHours.rb +4 -4
  524. metadata +1015 -1005
  525. data/lib/exchangebug.rb +0 -42
  526. data/lib/ruby-signal-bug.rb +0 -55
  527. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -60
  528. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -80
  529. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  530. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  531. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -412
  532. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -680
  533. data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +0 -4
  534. data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +0 -25
  535. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -8
  536. data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +0 -8
  537. data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +0 -28
  538. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  540. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  541. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  542. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  543. data/test/TestSuite/Scheduler/' +0 -23
  544. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  545. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  546. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  547. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  548. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  549. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  550. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  551. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  552. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  553. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  554. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  555. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  556. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  557. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  558. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  559. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  560. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  561. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  562. data/test/TestSuite/TimeSheets/receiver.log.mod +0 -1056
  563. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -171,6 +171,8 @@
171
171
 
172
172
  <li><a href="#method-i-upto">#upto</a></li>
173
173
 
174
+ <li><a href="#method-i-utc">#utc</a></li>
175
+
174
176
  <li><a href="#method-i-wday">#wday</a></li>
175
177
 
176
178
  <li><a href="#method-i-week">#week</a></li>
@@ -319,12 +321,24 @@
319
321
 
320
322
  <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
321
323
 
324
+ <li><a href="../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
325
+
326
+ <li><a href="../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
327
+
328
+ <li><a href="../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
329
+
330
+ <li><a href="../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
331
+
332
+ <li><a href="../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
333
+
334
+ <li><a href="../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
335
+
336
+ <li><a href="../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
337
+
322
338
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
323
339
 
324
340
  <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
325
341
 
326
- <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
327
-
328
342
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
329
343
 
330
344
  <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
@@ -439,6 +453,8 @@
439
453
 
440
454
  <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
441
455
 
456
+ <li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
457
+
442
458
  <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
443
459
 
444
460
  <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
@@ -497,6 +513,8 @@
497
513
 
498
514
  <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
499
515
 
516
+ <li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
517
+
500
518
  <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
501
519
 
502
520
  <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
@@ -543,6 +561,10 @@
543
561
 
544
562
  <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
545
563
 
564
+ <li><a href="../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
565
+
566
+ <li><a href="../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
567
+
546
568
  <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
547
569
 
548
570
  <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
@@ -593,6 +615,10 @@
593
615
 
594
616
  <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
595
617
 
618
+ <li><a href="../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
619
+
620
+ <li><a href="../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
621
+
596
622
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
597
623
 
598
624
  <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
@@ -787,33 +813,33 @@ Check if <tt>zone</tt> is a valid time zone.
787
813
  <div class="method-source-code"
788
814
  id="check-ime-one-source">
789
815
  <pre>
790
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 65</span>
791
- 65: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">checkTimeZone</span>(<span class="ruby-identifier">zone</span>)
792
- 66: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'UTC'</span>
793
- 67:
794
- 68: <span class="ruby-comment cmt"># Valid time zones must be of the form 'Region/City'</span>
795
- 69: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">zone</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'/'</span>)
796
- 70:
797
- 71: <span class="ruby-comment cmt"># Save curent value of TZ</span>
798
- 72: <span class="ruby-identifier">tz</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>]
799
- 73: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-identifier">zone</span>
800
- 74: <span class="ruby-identifier">newZone</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">zone</span>
801
- 75: <span class="ruby-comment cmt"># If the time zone is valid, the OS can convert a zone like</span>
802
- 76: <span class="ruby-comment cmt"># 'America/Denver' into 'MST'. Unknown time zones are either not</span>
803
- 77: <span class="ruby-comment cmt"># converted or cause a fallback to UTC.</span>
804
- 78: <span class="ruby-comment cmt"># Since glibc 2.10 Time.new.zone only return the region for illegal</span>
805
- 79: <span class="ruby-comment cmt"># zones instead of the full zone string like it does on earlier</span>
806
- 80: <span class="ruby-comment cmt"># versions.</span>
807
- 81: <span class="ruby-identifier">region</span> = <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">zone</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'/'</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>]
808
- 82: <span class="ruby-identifier">res</span> = (<span class="ruby-identifier">newZone</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">zone</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">newZone</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">region</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">newZone</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'UTC'</span>)
809
- 83: <span class="ruby-comment cmt"># Restore TZ if it was set earlier.</span>
810
- 84: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tz</span>
811
- 85: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-identifier">tz</span>
812
- 86: <span class="ruby-keyword kw">else</span>
813
- 87: <span class="ruby-constant">ENV</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'TZ'</span>)
814
- 88: <span class="ruby-keyword kw">end</span>
815
- 89: <span class="ruby-identifier">res</span>
816
- 90: <span class="ruby-keyword kw">end</span></pre>
816
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 64</span>
817
+ 64: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">checkTimeZone</span>(<span class="ruby-identifier">zone</span>)
818
+ 65: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'UTC'</span>
819
+ 66:
820
+ 67: <span class="ruby-comment cmt"># Valid time zones must be of the form 'Region/City'</span>
821
+ 68: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">zone</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'/'</span>)
822
+ 69:
823
+ 70: <span class="ruby-comment cmt"># Save curent value of TZ</span>
824
+ 71: <span class="ruby-identifier">tz</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>]
825
+ 72: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-identifier">zone</span>
826
+ 73: <span class="ruby-identifier">newZone</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">zone</span>
827
+ 74: <span class="ruby-comment cmt"># If the time zone is valid, the OS can convert a zone like</span>
828
+ 75: <span class="ruby-comment cmt"># 'America/Denver' into 'MST'. Unknown time zones are either not</span>
829
+ 76: <span class="ruby-comment cmt"># converted or cause a fallback to UTC.</span>
830
+ 77: <span class="ruby-comment cmt"># Since glibc 2.10 Time.new.zone only return the region for illegal</span>
831
+ 78: <span class="ruby-comment cmt"># zones instead of the full zone string like it does on earlier</span>
832
+ 79: <span class="ruby-comment cmt"># versions.</span>
833
+ 80: <span class="ruby-identifier">region</span> = <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">zone</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'/'</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>]
834
+ 81: <span class="ruby-identifier">res</span> = (<span class="ruby-identifier">newZone</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">zone</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">newZone</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">region</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">newZone</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'UTC'</span>)
835
+ 82: <span class="ruby-comment cmt"># Restore TZ if it was set earlier.</span>
836
+ 83: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tz</span>
837
+ 84: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-identifier">tz</span>
838
+ 85: <span class="ruby-keyword kw">else</span>
839
+ 86: <span class="ruby-constant">ENV</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'TZ'</span>)
840
+ 87: <span class="ruby-keyword kw">end</span>
841
+ 88: <span class="ruby-identifier">res</span>
842
+ 89: <span class="ruby-keyword kw">end</span></pre>
817
843
  </div>
818
844
 
819
845
  </div>
@@ -852,27 +878,27 @@ seconds after Epoch.
852
878
  <div class="method-source-code"
853
879
  id="new-source">
854
880
  <pre>
855
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 43</span>
856
- 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">nil</span>)
857
- 44: <span class="ruby-ivar">@timeZone</span> = <span class="ruby-identifier">@@tz</span>
858
- 45:
859
- 46: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">t</span>
860
- 47: <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>
861
- 48: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
862
- 49: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Time</span>
863
- 50: <span class="ruby-ivar">@time</span> = <span class="ruby-identifier">t</span>
864
- 51: <span class="ruby-ivar">@timeZone</span> = <span class="ruby-keyword kw">nil</span>
865
- 52: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">TjTime</span>
866
- 53: <span class="ruby-ivar">@time</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
867
- 54: <span class="ruby-ivar">@timeZone</span> = <span class="ruby-keyword kw">nil</span>
868
- 55: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>
869
- 56: <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">t</span>)
870
- 57: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
871
- 58: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">mktime</span>(*<span class="ruby-identifier">t</span>)
872
- 59: <span class="ruby-keyword kw">else</span>
873
- 60: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">t</span>)
874
- 61: <span class="ruby-keyword kw">end</span>
875
- 62: <span class="ruby-keyword kw">end</span></pre>
881
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 42</span>
882
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">nil</span>)
883
+ 43: <span class="ruby-ivar">@timeZone</span> = <span class="ruby-identifier">@@tz</span>
884
+ 44:
885
+ 45: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">t</span>
886
+ 46: <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>
887
+ 47: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
888
+ 48: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Time</span>
889
+ 49: <span class="ruby-ivar">@time</span> = <span class="ruby-identifier">t</span>
890
+ 50: <span class="ruby-ivar">@timeZone</span> = <span class="ruby-keyword kw">nil</span>
891
+ 51: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">TjTime</span>
892
+ 52: <span class="ruby-ivar">@time</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
893
+ 53: <span class="ruby-ivar">@timeZone</span> = <span class="ruby-keyword kw">nil</span>
894
+ 54: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>
895
+ 55: <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">t</span>)
896
+ 56: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
897
+ 57: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">mktime</span>(*<span class="ruby-identifier">t</span>)
898
+ 58: <span class="ruby-keyword kw">else</span>
899
+ 59: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">t</span>)
900
+ 60: <span class="ruby-keyword kw">end</span>
901
+ 61: <span class="ruby-keyword kw">end</span></pre>
876
902
  </div>
877
903
 
878
904
  </div>
@@ -906,19 +932,19 @@ href="../String.html">String</a> known to the underlying operating system.
906
932
  <div class="method-source-code"
907
933
  id="set-ime-one-source">
908
934
  <pre>
909
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 94</span>
910
- 94: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">setTimeZone</span>(<span class="ruby-identifier">zone</span>)
911
- 95: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">zone</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">checkTimeZone</span>(<span class="ruby-identifier">zone</span>)
912
- 96: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Illegal time zone #{zone}&quot;</span>
913
- 97: <span class="ruby-keyword kw">end</span>
914
- 98:
915
- 99: <span class="ruby-identifier">oldTimeZone</span> = <span class="ruby-identifier">@@tz</span>
916
- 100:
917
- 101: <span class="ruby-identifier">@@tz</span> = <span class="ruby-identifier">zone</span>
918
- 102: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-identifier">zone</span>
919
- 103:
920
- 104: <span class="ruby-identifier">oldTimeZone</span>
921
- 105: <span class="ruby-keyword kw">end</span></pre>
935
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 93</span>
936
+ 93: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">setTimeZone</span>(<span class="ruby-identifier">zone</span>)
937
+ 94: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">zone</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">checkTimeZone</span>(<span class="ruby-identifier">zone</span>)
938
+ 95: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Illegal time zone #{zone}&quot;</span>
939
+ 96: <span class="ruby-keyword kw">end</span>
940
+ 97:
941
+ 98: <span class="ruby-identifier">oldTimeZone</span> = <span class="ruby-identifier">@@tz</span>
942
+ 99:
943
+ 100: <span class="ruby-identifier">@@tz</span> = <span class="ruby-identifier">zone</span>
944
+ 101: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-identifier">zone</span>
945
+ 102:
946
+ 103: <span class="ruby-identifier">oldTimeZone</span>
947
+ 104: <span class="ruby-keyword kw">end</span></pre>
922
948
  </div>
923
949
 
924
950
  </div>
@@ -951,10 +977,10 @@ Return the name of the currently active time zone.
951
977
  <div class="method-source-code"
952
978
  id="time-one-source">
953
979
  <pre>
954
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 108</span>
955
- 108: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">timeZone</span>
956
- 109: <span class="ruby-identifier">@@tz</span>
957
- 110: <span class="ruby-keyword kw">end</span></pre>
980
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 107</span>
981
+ 107: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">timeZone</span>
982
+ 108: <span class="ruby-identifier">@@tz</span>
983
+ 109: <span class="ruby-keyword kw">end</span></pre>
958
984
  </div>
959
985
 
960
986
  </div>
@@ -994,10 +1020,10 @@ Convert the time to seconds since Epoch and return the module of
994
1020
  <div class="method-source-code"
995
1021
  id="--source">
996
1022
  <pre>
997
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 140</span>
998
- 140: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">%</span>(<span class="ruby-identifier">val</span>)
999
- 141: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">val</span>
1000
- 142: <span class="ruby-keyword kw">end</span></pre>
1023
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 144</span>
1024
+ 144: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">%</span>(<span class="ruby-identifier">val</span>)
1025
+ 145: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">val</span>
1026
+ 146: <span class="ruby-keyword kw">end</span></pre>
1001
1027
  </div>
1002
1028
 
1003
1029
  </div>
@@ -1030,10 +1056,10 @@ Add <em>secs</em> number of seconds to the time.
1030
1056
  <div class="method-source-code"
1031
1057
  id="--source">
1032
1058
  <pre>
1033
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 125</span>
1034
- 125: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">secs</span>)
1035
- 126: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">secs</span>)
1036
- 127: <span class="ruby-keyword kw">end</span></pre>
1059
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 129</span>
1060
+ 129: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">secs</span>)
1061
+ 130: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">secs</span>)
1062
+ 131: <span class="ruby-keyword kw">end</span></pre>
1037
1063
  </div>
1038
1064
 
1039
1065
  </div>
@@ -1067,14 +1093,14 @@ between <em>arg</em> and this time.
1067
1093
  <div class="method-source-code"
1068
1094
  id="--source">
1069
1095
  <pre>
1070
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 131</span>
1071
- 131: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">arg</span>)
1072
- 132: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
1073
- 133: <span class="ruby-ivar">@time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">time</span>
1074
- 134: <span class="ruby-keyword kw">else</span>
1075
- 135: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">arg</span>)
1076
- 136: <span class="ruby-keyword kw">end</span>
1077
- 137: <span class="ruby-keyword kw">end</span></pre>
1096
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 135</span>
1097
+ 135: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">arg</span>)
1098
+ 136: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
1099
+ 137: <span class="ruby-ivar">@time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">time</span>
1100
+ 138: <span class="ruby-keyword kw">else</span>
1101
+ 139: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">arg</span>)
1102
+ 140: <span class="ruby-keyword kw">end</span>
1103
+ 141: <span class="ruby-keyword kw">end</span></pre>
1078
1104
  </div>
1079
1105
 
1080
1106
  </div>
@@ -1107,11 +1133,11 @@ Return true if time is smaller than <em>t</em>.
1107
1133
  <div class="method-source-code"
1108
1134
  id="--source">
1109
1135
  <pre>
1110
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 145</span>
1111
- 145: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;</span>(<span class="ruby-identifier">t</span>)
1112
- 146: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1113
- 147: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1114
- 148: <span class="ruby-keyword kw">end</span></pre>
1136
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 149</span>
1137
+ 149: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;</span>(<span class="ruby-identifier">t</span>)
1138
+ 150: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1139
+ 151: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1140
+ 152: <span class="ruby-keyword kw">end</span></pre>
1115
1141
  </div>
1116
1142
 
1117
1143
  </div>
@@ -1144,11 +1170,11 @@ Return true if time is smaller or equal than <em>t</em>.
1144
1170
  <div class="method-source-code"
1145
1171
  id="--source">
1146
1172
  <pre>
1147
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 151</span>
1148
- 151: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=</span>(<span class="ruby-identifier">t</span>)
1149
- 152: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1150
- 153: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1151
- 154: <span class="ruby-keyword kw">end</span></pre>
1173
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 155</span>
1174
+ 155: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=</span>(<span class="ruby-identifier">t</span>)
1175
+ 156: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1176
+ 157: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1177
+ 158: <span class="ruby-keyword kw">end</span></pre>
1152
1178
  </div>
1153
1179
 
1154
1180
  </div>
@@ -1181,11 +1207,11 @@ Coparison operator for time with another time <em>t</em>.
1181
1207
  <div class="method-source-code"
1182
1208
  id="--source">
1183
1209
  <pre>
1184
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 175</span>
1185
- 175: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">t</span>)
1186
- 176: <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1187
- 177: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1188
- 178: <span class="ruby-keyword kw">end</span></pre>
1210
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 179</span>
1211
+ 179: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">t</span>)
1212
+ 180: <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1213
+ 181: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1214
+ 182: <span class="ruby-keyword kw">end</span></pre>
1189
1215
  </div>
1190
1216
 
1191
1217
  </div>
@@ -1218,11 +1244,11 @@ Return true if time and <em>t</em> are identical.
1218
1244
  <div class="method-source-code"
1219
1245
  id="--source">
1220
1246
  <pre>
1221
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 169</span>
1222
- 169: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">t</span>)
1223
- 170: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1224
- 171: <span class="ruby-ivar">@time</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1225
- 172: <span class="ruby-keyword kw">end</span></pre>
1247
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 173</span>
1248
+ 173: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">t</span>)
1249
+ 174: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1250
+ 175: <span class="ruby-ivar">@time</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1251
+ 176: <span class="ruby-keyword kw">end</span></pre>
1226
1252
  </div>
1227
1253
 
1228
1254
  </div>
@@ -1255,11 +1281,11 @@ Return true if time is larger than <em>t</em>.
1255
1281
  <div class="method-source-code"
1256
1282
  id="--source">
1257
1283
  <pre>
1258
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 157</span>
1259
- 157: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&gt;</span>(<span class="ruby-identifier">t</span>)
1260
- 158: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1261
- 159: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1262
- 160: <span class="ruby-keyword kw">end</span></pre>
1284
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 161</span>
1285
+ 161: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&gt;</span>(<span class="ruby-identifier">t</span>)
1286
+ 162: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1287
+ 163: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1288
+ 164: <span class="ruby-keyword kw">end</span></pre>
1263
1289
  </div>
1264
1290
 
1265
1291
  </div>
@@ -1292,11 +1318,11 @@ Return true if time is larger or equal than <em>t</em>.
1292
1318
  <div class="method-source-code"
1293
1319
  id="--source">
1294
1320
  <pre>
1295
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 163</span>
1296
- 163: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&gt;=</span>(<span class="ruby-identifier">t</span>)
1297
- 164: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1298
- 165: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1299
- 166: <span class="ruby-keyword kw">end</span></pre>
1321
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 167</span>
1322
+ 167: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&gt;=</span>(<span class="ruby-identifier">t</span>)
1323
+ 168: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">t</span>
1324
+ 169: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
1325
+ 170: <span class="ruby-keyword kw">end</span></pre>
1300
1326
  </div>
1301
1327
 
1302
1328
  </div>
@@ -1330,10 +1356,10 @@ Align the date to a time grid. The grid distance is determined by
1330
1356
  <div class="method-source-code"
1331
1357
  id="align-source">
1332
1358
  <pre>
1333
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 113</span>
1334
- 113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">align</span>(<span class="ruby-identifier">clock</span>)
1335
- 114: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>((<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">clock</span>) * <span class="ruby-identifier">clock</span>)
1336
- 115: <span class="ruby-keyword kw">end</span></pre>
1359
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 112</span>
1360
+ 112: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">align</span>(<span class="ruby-identifier">clock</span>)
1361
+ 113: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>((<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">clock</span>) * <span class="ruby-identifier">clock</span>)
1362
+ 114: <span class="ruby-keyword kw">end</span></pre>
1337
1363
  </div>
1338
1364
 
1339
1365
  </div>
@@ -1366,12 +1392,12 @@ Normalize time to the beginning of the current hour.
1366
1392
  <div class="method-source-code"
1367
1393
  id="begin-f-our-source">
1368
1394
  <pre>
1369
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 191</span>
1370
- 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfHour</span>
1371
- 192: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1372
- 193: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-value">0</span>
1373
- 194: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1374
- 195: <span class="ruby-keyword kw">end</span></pre>
1395
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 195</span>
1396
+ 195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfHour</span>
1397
+ 196: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1398
+ 197: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-value">0</span>
1399
+ 198: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1400
+ 199: <span class="ruby-keyword kw">end</span></pre>
1375
1401
  </div>
1376
1402
 
1377
1403
  </div>
@@ -1404,13 +1430,13 @@ Normalize time to the beginning of the current month.
1404
1430
  <div class="method-source-code"
1405
1431
  id="begin-f-onth-source">
1406
1432
  <pre>
1407
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 220</span>
1408
- 220: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfMonth</span>
1409
- 221: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1410
- 222: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-identifier">hour</span> = <span class="ruby-value">0</span>
1411
- 223: <span class="ruby-identifier">day</span> = <span class="ruby-value">1</span>
1412
- 224: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1413
- 225: <span class="ruby-keyword kw">end</span></pre>
1433
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 224</span>
1434
+ 224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfMonth</span>
1435
+ 225: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1436
+ 226: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-identifier">hour</span> = <span class="ruby-value">0</span>
1437
+ 227: <span class="ruby-identifier">day</span> = <span class="ruby-value">1</span>
1438
+ 228: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1439
+ 229: <span class="ruby-keyword kw">end</span></pre>
1414
1440
  </div>
1415
1441
 
1416
1442
  </div>
@@ -1443,14 +1469,14 @@ Normalize time to the beginning of the current quarter.
1443
1469
  <div class="method-source-code"
1444
1470
  id="begin-f-uarter-source">
1445
1471
  <pre>
1446
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 228</span>
1447
- 228: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfQuarter</span>
1448
- 229: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1449
- 230: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-identifier">hour</span> = <span class="ruby-value">0</span>
1450
- 231: <span class="ruby-identifier">day</span> = <span class="ruby-value">1</span>
1451
- 232: <span class="ruby-identifier">month</span> = ((<span class="ruby-identifier">month</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">%</span> <span class="ruby-value">3</span> ) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1452
- 233: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1453
- 234: <span class="ruby-keyword kw">end</span></pre>
1472
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 232</span>
1473
+ 232: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfQuarter</span>
1474
+ 233: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1475
+ 234: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-identifier">hour</span> = <span class="ruby-value">0</span>
1476
+ 235: <span class="ruby-identifier">day</span> = <span class="ruby-value">1</span>
1477
+ 236: <span class="ruby-identifier">month</span> = ((<span class="ruby-identifier">month</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">%</span> <span class="ruby-value">3</span> ) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1478
+ 237: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1479
+ 238: <span class="ruby-keyword kw">end</span></pre>
1454
1480
  </div>
1455
1481
 
1456
1482
  </div>
@@ -1484,19 +1510,19 @@ determines whether the week should start on Monday or Sunday.
1484
1510
  <div class="method-source-code"
1485
1511
  id="begin-f-eek-source">
1486
1512
  <pre>
1487
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 206</span>
1488
- 206: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-identifier">startMonday</span>)
1489
- 207: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1490
- 208: <span class="ruby-comment cmt"># Set time to noon, 12:00:00</span>
1491
- 209: <span class="ruby-identifier">t</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>] = [ <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">12</span> ]
1492
- 210: <span class="ruby-identifier">weekday</span> = <span class="ruby-identifier">t</span>[<span class="ruby-value">6</span>]
1493
- 211: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
1494
- 212: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
1495
- 213: <span class="ruby-comment cmt"># Substract the number of days determined by the weekday t[6] and set time</span>
1496
- 214: <span class="ruby-comment cmt"># to midnight of that day.</span>
1497
- 215: (<span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(*<span class="ruby-identifier">t</span>)) <span class="ruby-operator">-</span>
1498
- 216: (<span class="ruby-identifier">weekday</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">startMonday</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)) * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>).<span class="ruby-identifier">midnight</span>
1499
- 217: <span class="ruby-keyword kw">end</span></pre>
1513
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 210</span>
1514
+ 210: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-identifier">startMonday</span>)
1515
+ 211: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1516
+ 212: <span class="ruby-comment cmt"># Set time to noon, 12:00:00</span>
1517
+ 213: <span class="ruby-identifier">t</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>] = [ <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">12</span> ]
1518
+ 214: <span class="ruby-identifier">weekday</span> = <span class="ruby-identifier">t</span>[<span class="ruby-value">6</span>]
1519
+ 215: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
1520
+ 216: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
1521
+ 217: <span class="ruby-comment cmt"># Substract the number of days determined by the weekday t[6] and set time</span>
1522
+ 218: <span class="ruby-comment cmt"># to midnight of that day.</span>
1523
+ 219: (<span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(*<span class="ruby-identifier">t</span>)) <span class="ruby-operator">-</span>
1524
+ 220: (<span class="ruby-identifier">weekday</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">startMonday</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)) * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>).<span class="ruby-identifier">midnight</span>
1525
+ 221: <span class="ruby-keyword kw">end</span></pre>
1500
1526
  </div>
1501
1527
 
1502
1528
  </div>
@@ -1529,13 +1555,13 @@ Normalize time to the beginning of the current year.
1529
1555
  <div class="method-source-code"
1530
1556
  id="begin-f-ear-source">
1531
1557
  <pre>
1532
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 237</span>
1533
- 237: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfYear</span>
1534
- 238: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1535
- 239: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-identifier">hour</span> = <span class="ruby-value">0</span>
1536
- 240: <span class="ruby-identifier">day</span> = <span class="ruby-identifier">month</span> = <span class="ruby-value">1</span>
1537
- 241: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1538
- 242: <span class="ruby-keyword kw">end</span></pre>
1558
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 241</span>
1559
+ 241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfYear</span>
1560
+ 242: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1561
+ 243: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-identifier">hour</span> = <span class="ruby-value">0</span>
1562
+ 244: <span class="ruby-identifier">day</span> = <span class="ruby-identifier">month</span> = <span class="ruby-value">1</span>
1563
+ 245: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1564
+ 246: <span class="ruby-keyword kw">end</span></pre>
1539
1565
  </div>
1540
1566
 
1541
1567
  </div>
@@ -1568,10 +1594,10 @@ Return the day of the month (1..n).
1568
1594
  <div class="method-source-code"
1569
1595
  id="day-source">
1570
1596
  <pre>
1571
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 399</span>
1572
- 399: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">day</span>
1573
- 400: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">day</span>
1574
- 401: <span class="ruby-keyword kw">end</span></pre>
1597
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 403</span>
1598
+ 403: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">day</span>
1599
+ 404: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">day</span>
1600
+ 405: <span class="ruby-keyword kw">end</span></pre>
1575
1601
  </div>
1576
1602
 
1577
1603
  </div>
@@ -1605,10 +1631,10 @@ is always rounded up.
1605
1631
  <div class="method-source-code"
1606
1632
  id="days-o-source">
1607
1633
  <pre>
1608
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 336</span>
1609
- 336: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">daysTo</span>(<span class="ruby-identifier">date</span>)
1610
- 337: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextDay</span>)
1611
- 338: <span class="ruby-keyword kw">end</span></pre>
1634
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 340</span>
1635
+ 340: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">daysTo</span>(<span class="ruby-identifier">date</span>)
1636
+ 341: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextDay</span>)
1637
+ 342: <span class="ruby-keyword kw">end</span></pre>
1612
1638
  </div>
1613
1639
 
1614
1640
  </div>
@@ -1641,10 +1667,10 @@ Return the hours of the day (0..23)
1641
1667
  <div class="method-source-code"
1642
1668
  id="hour-source">
1643
1669
  <pre>
1644
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 394</span>
1645
- 394: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hour</span>
1646
- 395: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">hour</span>
1647
- 396: <span class="ruby-keyword kw">end</span></pre>
1670
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 398</span>
1671
+ 398: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hour</span>
1672
+ 399: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">hour</span>
1673
+ 400: <span class="ruby-keyword kw">end</span></pre>
1648
1674
  </div>
1649
1675
 
1650
1676
  </div>
@@ -1677,10 +1703,10 @@ Return a new time that is <em>hours</em> later than time.
1677
1703
  <div class="method-source-code"
1678
1704
  id="hours-ater-source">
1679
1705
  <pre>
1680
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 245</span>
1681
- 245: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hoursLater</span>(<span class="ruby-identifier">hours</span>)
1682
- 246: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">hours</span> * <span class="ruby-value">3600</span>)
1683
- 247: <span class="ruby-keyword kw">end</span></pre>
1706
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 249</span>
1707
+ 249: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hoursLater</span>(<span class="ruby-identifier">hours</span>)
1708
+ 250: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">hours</span> * <span class="ruby-value">3600</span>)
1709
+ 251: <span class="ruby-keyword kw">end</span></pre>
1684
1710
  </div>
1685
1711
 
1686
1712
  </div>
@@ -1714,11 +1740,11 @@ is always rounded up.
1714
1740
  <div class="method-source-code"
1715
1741
  id="hours-o-source">
1716
1742
  <pre>
1717
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 329</span>
1718
- 329: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hoursTo</span>(<span class="ruby-identifier">date</span>)
1719
- 330: <span class="ruby-identifier">t1</span>, <span class="ruby-identifier">t2</span> = <span class="ruby-identifier">order</span>(<span class="ruby-identifier">date</span>)
1720
- 331: ((<span class="ruby-identifier">t2</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">t1</span>) <span class="ruby-operator">/</span> <span class="ruby-value">3600</span>).<span class="ruby-identifier">ceil</span>
1721
- 332: <span class="ruby-keyword kw">end</span></pre>
1743
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 333</span>
1744
+ 333: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hoursTo</span>(<span class="ruby-identifier">date</span>)
1745
+ 334: <span class="ruby-identifier">t1</span>, <span class="ruby-identifier">t2</span> = <span class="ruby-identifier">order</span>(<span class="ruby-identifier">date</span>)
1746
+ 335: ((<span class="ruby-identifier">t2</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">t1</span>) <span class="ruby-operator">/</span> <span class="ruby-value">3600</span>).<span class="ruby-identifier">ceil</span>
1747
+ 336: <span class="ruby-keyword kw">end</span></pre>
1722
1748
  </div>
1723
1749
 
1724
1750
  </div>
@@ -1751,12 +1777,12 @@ Normalize time to the beginning of the current day.
1751
1777
  <div class="method-source-code"
1752
1778
  id="midnight-source">
1753
1779
  <pre>
1754
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 198</span>
1755
- 198: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">midnight</span>
1756
- 199: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1757
- 200: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-identifier">hour</span> = <span class="ruby-value">0</span>
1758
- 201: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1759
- 202: <span class="ruby-keyword kw">end</span></pre>
1780
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 202</span>
1781
+ 202: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">midnight</span>
1782
+ 203: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1783
+ 204: <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">min</span> = <span class="ruby-identifier">hour</span> = <span class="ruby-value">0</span>
1784
+ 205: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
1785
+ 206: <span class="ruby-keyword kw">end</span></pre>
1760
1786
  </div>
1761
1787
 
1762
1788
  </div>
@@ -1818,10 +1844,10 @@ Return the month of the year (1..12)
1818
1844
  <div class="method-source-code"
1819
1845
  id="month-source">
1820
1846
  <pre>
1821
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 404</span>
1822
- 404: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">month</span>
1823
- 405: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">month</span>
1824
- 406: <span class="ruby-keyword kw">end</span></pre>
1847
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 408</span>
1848
+ 408: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">month</span>
1849
+ 409: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">month</span>
1850
+ 410: <span class="ruby-keyword kw">end</span></pre>
1825
1851
  </div>
1826
1852
 
1827
1853
  </div>
@@ -1859,10 +1885,10 @@ Return the abbreviated month name and the full year. E. g. &#8216;Feb
1859
1885
  <div class="method-source-code"
1860
1886
  id="month-nd-ear-source">
1861
1887
  <pre>
1862
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 432</span>
1863
- 432: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monthAndYear</span>
1864
- 433: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%b %Y'</span>)
1865
- 434: <span class="ruby-keyword kw">end</span></pre>
1888
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 436</span>
1889
+ 436: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monthAndYear</span>
1890
+ 437: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%b %Y'</span>)
1891
+ 438: <span class="ruby-keyword kw">end</span></pre>
1866
1892
  </div>
1867
1893
 
1868
1894
  </div>
@@ -1896,10 +1922,10 @@ is always rounded up.
1896
1922
  <div class="method-source-code"
1897
1923
  id="months-o-source">
1898
1924
  <pre>
1899
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 348</span>
1900
- 348: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monthsTo</span>(<span class="ruby-identifier">date</span>)
1901
- 349: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextMonth</span>)
1902
- 350: <span class="ruby-keyword kw">end</span></pre>
1925
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 352</span>
1926
+ 352: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monthsTo</span>(<span class="ruby-identifier">date</span>)
1927
+ 353: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextMonth</span>)
1928
+ 354: <span class="ruby-keyword kw">end</span></pre>
1903
1929
  </div>
1904
1930
 
1905
1931
  </div>
@@ -1936,14 +1962,14 @@ Friday 0:00 will be returned. If <em>date</em> is a Tuesday and
1936
1962
  <div class="method-source-code"
1937
1963
  id="next-ay-f-eek-source">
1938
1964
  <pre>
1939
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 319</span>
1940
- 319: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextDayOfWeek</span>(<span class="ruby-identifier">dow</span>)
1941
- 320: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Day of week must be 0 - 6.&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">dow</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">dow</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">6</span>
1942
- 321: <span class="ruby-identifier">d</span> = <span class="ruby-identifier">midnight</span>.<span class="ruby-identifier">sameTimeNextDay</span>
1943
- 322: <span class="ruby-identifier">currentDoW</span> = <span class="ruby-identifier">d</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%w'</span>).<span class="ruby-identifier">to_i</span>
1944
- 323: <span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>((<span class="ruby-identifier">dow</span> <span class="ruby-operator">+</span> <span class="ruby-value">7</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">currentDoW</span>) <span class="ruby-operator">%</span> <span class="ruby-value">7</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">d</span> = <span class="ruby-identifier">d</span>.<span class="ruby-identifier">sameTimeNextDay</span> }
1945
- 324: <span class="ruby-identifier">d</span>
1946
- 325: <span class="ruby-keyword kw">end</span></pre>
1965
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 323</span>
1966
+ 323: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextDayOfWeek</span>(<span class="ruby-identifier">dow</span>)
1967
+ 324: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Day of week must be 0 - 6.&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">dow</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">dow</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">6</span>
1968
+ 325: <span class="ruby-identifier">d</span> = <span class="ruby-identifier">midnight</span>.<span class="ruby-identifier">sameTimeNextDay</span>
1969
+ 326: <span class="ruby-identifier">currentDoW</span> = <span class="ruby-identifier">d</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%w'</span>).<span class="ruby-identifier">to_i</span>
1970
+ 327: <span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>((<span class="ruby-identifier">dow</span> <span class="ruby-operator">+</span> <span class="ruby-value">7</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">currentDoW</span>) <span class="ruby-operator">%</span> <span class="ruby-value">7</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">d</span> = <span class="ruby-identifier">d</span>.<span class="ruby-identifier">sameTimeNextDay</span> }
1971
+ 328: <span class="ruby-identifier">d</span>
1972
+ 329: <span class="ruby-keyword kw">end</span></pre>
1947
1973
  </div>
1948
1974
 
1949
1975
  </div>
@@ -1976,10 +2002,10 @@ Return the number of the quarter prefixed by a &#8216;Q&#8217;.
1976
2002
  <div class="method-source-code"
1977
2003
  id="quarter-ame-source">
1978
2004
  <pre>
1979
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 421</span>
1980
- 421: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quarterName</span>
1981
- 422: <span class="ruby-node">&quot;Q#{(localtime.mon / 3) + 1}&quot;</span>
1982
- 423: <span class="ruby-keyword kw">end</span></pre>
2005
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 425</span>
2006
+ 425: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quarterName</span>
2007
+ 426: <span class="ruby-node">&quot;Q#{(localtime.mon / 3) + 1}&quot;</span>
2008
+ 427: <span class="ruby-keyword kw">end</span></pre>
1983
2009
  </div>
1984
2010
 
1985
2011
  </div>
@@ -2013,10 +2039,10 @@ result is always rounded up.
2013
2039
  <div class="method-source-code"
2014
2040
  id="quarters-o-source">
2015
2041
  <pre>
2016
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 354</span>
2017
- 354: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quartersTo</span>(<span class="ruby-identifier">date</span>)
2018
- 355: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextQuarter</span>)
2019
- 356: <span class="ruby-keyword kw">end</span></pre>
2042
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 358</span>
2043
+ 358: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quartersTo</span>(<span class="ruby-identifier">date</span>)
2044
+ 359: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextQuarter</span>)
2045
+ 360: <span class="ruby-keyword kw">end</span></pre>
2020
2046
  </div>
2021
2047
 
2022
2048
  </div>
@@ -2050,18 +2076,18 @@ day.
2050
2076
  <div class="method-source-code"
2051
2077
  id="same-ime-ext-ay-source">
2052
2078
  <pre>
2053
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 256</span>
2054
- 256: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextDay</span>
2055
- 257: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2056
- 258: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">day</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2057
- 259: <span class="ruby-identifier">day</span> = <span class="ruby-value">1</span>
2058
- 260: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">month</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
2059
- 261: <span class="ruby-identifier">month</span> = <span class="ruby-value">1</span>
2060
- 262: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2061
- 263: <span class="ruby-keyword kw">end</span>
2062
- 264: <span class="ruby-keyword kw">end</span>
2063
- 265: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
2064
- 266: <span class="ruby-keyword kw">end</span></pre>
2079
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 260</span>
2080
+ 260: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextDay</span>
2081
+ 261: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2082
+ 262: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">day</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2083
+ 263: <span class="ruby-identifier">day</span> = <span class="ruby-value">1</span>
2084
+ 264: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">month</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
2085
+ 265: <span class="ruby-identifier">month</span> = <span class="ruby-value">1</span>
2086
+ 266: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2087
+ 267: <span class="ruby-keyword kw">end</span>
2088
+ 268: <span class="ruby-keyword kw">end</span>
2089
+ 269: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
2090
+ 270: <span class="ruby-keyword kw">end</span></pre>
2065
2091
  </div>
2066
2092
 
2067
2093
  </div>
@@ -2094,10 +2120,10 @@ Return a new time that is 1 hour later than time.
2094
2120
  <div class="method-source-code"
2095
2121
  id="same-ime-ext-our-source">
2096
2122
  <pre>
2097
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 250</span>
2098
- 250: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextHour</span>
2099
- 251: <span class="ruby-identifier">hoursLater</span>(<span class="ruby-value">1</span>)
2100
- 252: <span class="ruby-keyword kw">end</span></pre>
2123
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 254</span>
2124
+ 254: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextHour</span>
2125
+ 255: <span class="ruby-identifier">hoursLater</span>(<span class="ruby-value">1</span>)
2126
+ 256: <span class="ruby-keyword kw">end</span></pre>
2101
2127
  </div>
2102
2128
 
2103
2129
  </div>
@@ -2131,17 +2157,17 @@ day.
2131
2157
  <div class="method-source-code"
2132
2158
  id="same-ime-ext-onth-source">
2133
2159
  <pre>
2134
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 284</span>
2135
- 284: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextMonth</span>
2136
- 285: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2137
- 286: <span class="ruby-identifier">monMax</span> = <span class="ruby-identifier">month</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">leapYear?</span>(<span class="ruby-identifier">year</span>) <span class="ruby-operator">?</span> <span class="ruby-value">29</span> <span class="ruby-operator">:</span> <span class="ruby-constant">MON_MAX</span>[<span class="ruby-identifier">month</span>]
2138
- 287: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">month</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
2139
- 288: <span class="ruby-identifier">month</span> = <span class="ruby-value">1</span>
2140
- 289: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2141
- 290: <span class="ruby-keyword kw">end</span>
2142
- 291: <span class="ruby-identifier">day</span> = <span class="ruby-identifier">monMax</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2143
- 292: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
2144
- 293: <span class="ruby-keyword kw">end</span></pre>
2160
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 288</span>
2161
+ 288: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextMonth</span>
2162
+ 289: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2163
+ 290: <span class="ruby-identifier">monMax</span> = <span class="ruby-identifier">month</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">leapYear?</span>(<span class="ruby-identifier">year</span>) <span class="ruby-operator">?</span> <span class="ruby-value">29</span> <span class="ruby-operator">:</span> <span class="ruby-constant">MON_MAX</span>[<span class="ruby-identifier">month</span>]
2164
+ 291: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">month</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
2165
+ 292: <span class="ruby-identifier">month</span> = <span class="ruby-value">1</span>
2166
+ 293: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2167
+ 294: <span class="ruby-keyword kw">end</span>
2168
+ 295: <span class="ruby-identifier">day</span> = <span class="ruby-identifier">monMax</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2169
+ 296: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
2170
+ 297: <span class="ruby-keyword kw">end</span></pre>
2145
2171
  </div>
2146
2172
 
2147
2173
  </div>
@@ -2175,15 +2201,15 @@ day.
2175
2201
  <div class="method-source-code"
2176
2202
  id="same-ime-ext-uarter-source">
2177
2203
  <pre>
2178
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 297</span>
2179
- 297: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextQuarter</span>
2180
- 298: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2181
- 299: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">month</span> <span class="ruby-operator">+=</span> <span class="ruby-value">3</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
2182
- 300: <span class="ruby-identifier">month</span> <span class="ruby-operator">-=</span> <span class="ruby-value">12</span>
2183
- 301: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2184
- 302: <span class="ruby-keyword kw">end</span>
2185
- 303: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
2186
- 304: <span class="ruby-keyword kw">end</span></pre>
2204
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 301</span>
2205
+ 301: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextQuarter</span>
2206
+ 302: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2207
+ 303: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">month</span> <span class="ruby-operator">+=</span> <span class="ruby-value">3</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
2208
+ 304: <span class="ruby-identifier">month</span> <span class="ruby-operator">-=</span> <span class="ruby-value">12</span>
2209
+ 305: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2210
+ 306: <span class="ruby-keyword kw">end</span>
2211
+ 307: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
2212
+ 308: <span class="ruby-keyword kw">end</span></pre>
2187
2213
  </div>
2188
2214
 
2189
2215
  </div>
@@ -2217,18 +2243,18 @@ day.
2217
2243
  <div class="method-source-code"
2218
2244
  id="same-ime-ext-eek-source">
2219
2245
  <pre>
2220
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 270</span>
2221
- 270: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextWeek</span>
2222
- 271: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2223
- 272: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">day</span> <span class="ruby-operator">+=</span> <span class="ruby-value">7</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2224
- 273: <span class="ruby-identifier">day</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2225
- 274: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">month</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
2226
- 275: <span class="ruby-identifier">month</span> = <span class="ruby-value">1</span>
2227
- 276: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2228
- 277: <span class="ruby-keyword kw">end</span>
2229
- 278: <span class="ruby-keyword kw">end</span>
2230
- 279: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
2231
- 280: <span class="ruby-keyword kw">end</span></pre>
2246
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 274</span>
2247
+ 274: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextWeek</span>
2248
+ 275: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2249
+ 276: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">day</span> <span class="ruby-operator">+=</span> <span class="ruby-value">7</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2250
+ 277: <span class="ruby-identifier">day</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2251
+ 278: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">month</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
2252
+ 279: <span class="ruby-identifier">month</span> = <span class="ruby-value">1</span>
2253
+ 280: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2254
+ 281: <span class="ruby-keyword kw">end</span>
2255
+ 282: <span class="ruby-keyword kw">end</span>
2256
+ 283: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span> ])
2257
+ 284: <span class="ruby-keyword kw">end</span></pre>
2232
2258
  </div>
2233
2259
 
2234
2260
  </div>
@@ -2262,12 +2288,12 @@ day.
2262
2288
  <div class="method-source-code"
2263
2289
  id="same-ime-ext-ear-source">
2264
2290
  <pre>
2265
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 308</span>
2266
- 308: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextYear</span>
2267
- 309: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2268
- 310: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2269
- 311: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span>])
2270
- 312: <span class="ruby-keyword kw">end</span></pre>
2291
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 312</span>
2292
+ 312: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextYear</span>
2293
+ 313: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span> = <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2294
+ 314: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2295
+ 315: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span>])
2296
+ 316: <span class="ruby-keyword kw">end</span></pre>
2271
2297
  </div>
2272
2298
 
2273
2299
  </div>
@@ -2301,11 +2327,11 @@ in the time zone specified by <em>tz</em>.
2301
2327
  <div class="method-source-code"
2302
2328
  id="seconds-f-ay-source">
2303
2329
  <pre>
2304
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 119</span>
2305
- 119: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">secondsOfDay</span>(<span class="ruby-identifier">tz</span> = <span class="ruby-keyword kw">nil</span>)
2306
- 120: <span class="ruby-identifier">lt</span> = <span class="ruby-identifier">localtime</span>
2307
- 121: (<span class="ruby-identifier">lt</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">lt</span>.<span class="ruby-identifier">gmt_offset</span>) <span class="ruby-operator">%</span> (<span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>)
2308
- 122: <span class="ruby-keyword kw">end</span></pre>
2330
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 123</span>
2331
+ 123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">secondsOfDay</span>(<span class="ruby-identifier">tz</span> = <span class="ruby-keyword kw">nil</span>)
2332
+ 124: <span class="ruby-identifier">lt</span> = <span class="ruby-identifier">localtime</span>
2333
+ 125: (<span class="ruby-identifier">lt</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">lt</span>.<span class="ruby-identifier">gmt_offset</span>) <span class="ruby-operator">%</span> (<span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>)
2334
+ 126: <span class="ruby-keyword kw">end</span></pre>
2309
2335
  </div>
2310
2336
 
2311
2337
  </div>
@@ -2338,10 +2364,10 @@ Return the abbreviated month name.
2338
2364
  <div class="method-source-code"
2339
2365
  id="short-onth-ame-source">
2340
2366
  <pre>
2341
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 416</span>
2342
- 416: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shortMonthName</span>
2343
- 417: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%b'</span>)
2344
- 418: <span class="ruby-keyword kw">end</span></pre>
2367
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 420</span>
2368
+ 420: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shortMonthName</span>
2369
+ 421: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%b'</span>)
2370
+ 422: <span class="ruby-keyword kw">end</span></pre>
2345
2371
  </div>
2346
2372
 
2347
2373
  </div>
@@ -2372,10 +2398,10 @@ Return the abbreviated month name.
2372
2398
  <div class="method-source-code"
2373
2399
  id="strftime-source">
2374
2400
  <pre>
2375
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 384</span>
2376
- 384: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">format</span>)
2377
- 385: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">format</span>)
2378
- 386: <span class="ruby-keyword kw">end</span></pre>
2401
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 388</span>
2402
+ 388: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">format</span>)
2403
+ 389: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">format</span>)
2404
+ 390: <span class="ruby-keyword kw">end</span></pre>
2379
2405
  </div>
2380
2406
 
2381
2407
  </div>
@@ -2406,10 +2432,10 @@ Return the abbreviated month name.
2406
2432
  <div class="method-source-code"
2407
2433
  id="to-a-source">
2408
2434
  <pre>
2409
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 380</span>
2410
- 380: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>
2411
- 381: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2412
- 382: <span class="ruby-keyword kw">end</span></pre>
2435
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 384</span>
2436
+ 384: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>
2437
+ 385: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
2438
+ 386: <span class="ruby-keyword kw">end</span></pre>
2413
2439
  </div>
2414
2440
 
2415
2441
  </div>
@@ -2442,10 +2468,10 @@ Return the seconds since Epoch.
2442
2468
  <div class="method-source-code"
2443
2469
  id="to-i-source">
2444
2470
  <pre>
2445
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 376</span>
2446
- 376: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_i</span>
2447
- 377: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_i</span>
2448
- 378: <span class="ruby-keyword kw">end</span></pre>
2471
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 380</span>
2472
+ 380: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_i</span>
2473
+ 381: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_i</span>
2474
+ 382: <span class="ruby-keyword kw">end</span></pre>
2449
2475
  </div>
2450
2476
 
2451
2477
  </div>
@@ -2479,15 +2505,15 @@ nil, it returns &#8216;unkown&#8217;.
2479
2505
  <div class="method-source-code"
2480
2506
  id="to-s-source">
2481
2507
  <pre>
2482
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 366</span>
2483
- 366: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">format</span> = <span class="ruby-keyword kw">nil</span>)
2484
- 367: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'unknown'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">nil?</span>
2485
- 368: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">format</span>.<span class="ruby-identifier">nil?</span>
2486
- 369: <span class="ruby-identifier">format</span> = <span class="ruby-value str">'%Y-%m-%d-%H:%M'</span> <span class="ruby-operator">+</span> (<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">sec</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-value str">':%S'</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'-%z'</span>
2487
- 370: <span class="ruby-keyword kw">end</span>
2488
- 371: <span class="ruby-comment cmt"># Always report values in local timezone</span>
2489
- 372: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">format</span>)
2490
- 373: <span class="ruby-keyword kw">end</span></pre>
2508
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 370</span>
2509
+ 370: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">format</span> = <span class="ruby-keyword kw">nil</span>)
2510
+ 371: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'unknown'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">nil?</span>
2511
+ 372: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">format</span>.<span class="ruby-identifier">nil?</span>
2512
+ 373: <span class="ruby-identifier">format</span> = <span class="ruby-value str">'%Y-%m-%d-%H:%M'</span> <span class="ruby-operator">+</span> (<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">sec</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-value str">':%S'</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'-%z'</span>
2513
+ 374: <span class="ruby-keyword kw">end</span>
2514
+ 375: <span class="ruby-comment cmt"># Always report values in local timezone</span>
2515
+ 376: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">format</span>)
2516
+ 377: <span class="ruby-keyword kw">end</span></pre>
2491
2517
  </div>
2492
2518
 
2493
2519
  </div>
@@ -2521,14 +2547,50 @@ increasing time by <em>step</em> on each iteration.
2521
2547
  <div class="method-source-code"
2522
2548
  id="upto-source">
2523
2549
  <pre>
2524
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 182</span>
2525
- 182: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endDate</span>, <span class="ruby-identifier">step</span> = <span class="ruby-value">1</span>)
2526
- 183: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>
2527
- 184: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">endDate</span>.<span class="ruby-identifier">time</span>
2528
- 185: <span class="ruby-keyword kw">yield</span>(<span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>))
2529
- 186: <span class="ruby-identifier">t</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">step</span>
2530
- 187: <span class="ruby-keyword kw">end</span>
2531
- 188: <span class="ruby-keyword kw">end</span></pre>
2550
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 186</span>
2551
+ 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endDate</span>, <span class="ruby-identifier">step</span> = <span class="ruby-value">1</span>)
2552
+ 187: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>
2553
+ 188: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">endDate</span>.<span class="ruby-identifier">time</span>
2554
+ 189: <span class="ruby-keyword kw">yield</span>(<span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>))
2555
+ 190: <span class="ruby-identifier">t</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">step</span>
2556
+ 191: <span class="ruby-keyword kw">end</span>
2557
+ 192: <span class="ruby-keyword kw">end</span></pre>
2558
+ </div>
2559
+
2560
+ </div>
2561
+
2562
+
2563
+
2564
+
2565
+ </div>
2566
+
2567
+
2568
+ <div id="utc-method" class="method-detail ">
2569
+ <a name="method-i-utc"></a>
2570
+
2571
+ <div class="method-heading">
2572
+
2573
+ <span class="method-name">utc</span><span
2574
+ class="method-args">()</span>
2575
+ <span class="method-click-advice">click to toggle source</span>
2576
+
2577
+ </div>
2578
+
2579
+ <div class="method-description">
2580
+
2581
+ <p>
2582
+ Return the time object in UTC.
2583
+ </p>
2584
+
2585
+
2586
+
2587
+ <div class="method-source-code"
2588
+ id="utc-source">
2589
+ <pre>
2590
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 117</span>
2591
+ 117: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">utc</span>
2592
+ 118: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">gmtime</span>)
2593
+ 119: <span class="ruby-keyword kw">end</span></pre>
2532
2594
  </div>
2533
2595
 
2534
2596
  </div>
@@ -2561,10 +2623,10 @@ Return the day of the week. 0 for Sunday, 1 for Monday and so on.
2561
2623
  <div class="method-source-code"
2562
2624
  id="wday-source">
2563
2625
  <pre>
2564
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 389</span>
2565
- 389: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wday</span>
2566
- 390: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">wday</span>
2567
- 391: <span class="ruby-keyword kw">end</span></pre>
2626
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 393</span>
2627
+ 393: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wday</span>
2628
+ 394: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">wday</span>
2629
+ 395: <span class="ruby-keyword kw">end</span></pre>
2568
2630
  </div>
2569
2631
 
2570
2632
  </div>
@@ -2598,10 +2660,10 @@ counting should be for weeks starting Mondays or Sundays.
2598
2660
  <div class="method-source-code"
2599
2661
  id="week-source">
2600
2662
  <pre>
2601
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 427</span>
2602
- 427: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">week</span>(<span class="ruby-identifier">weekStartsMonday</span>)
2603
- 428: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">weekStartsMonday</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'%W'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'%U'</span>)
2604
- 429: <span class="ruby-keyword kw">end</span></pre>
2663
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 431</span>
2664
+ 431: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">week</span>(<span class="ruby-identifier">weekStartsMonday</span>)
2665
+ 432: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">weekStartsMonday</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'%W'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'%U'</span>)
2666
+ 433: <span class="ruby-keyword kw">end</span></pre>
2605
2667
  </div>
2606
2668
 
2607
2669
  </div>
@@ -2635,10 +2697,10 @@ Return the abbreviated weekday and the full date. E. g. &#8216;Sat
2635
2697
  <div class="method-source-code"
2636
2698
  id="weekday-nd-ate-source">
2637
2699
  <pre>
2638
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 437</span>
2639
- 437: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weekdayAndDate</span>
2640
- 438: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%A %Y-%m-%d'</span>)
2641
- 439: <span class="ruby-keyword kw">end</span></pre>
2700
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 441</span>
2701
+ 441: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weekdayAndDate</span>
2702
+ 442: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%A %Y-%m-%d'</span>)
2703
+ 443: <span class="ruby-keyword kw">end</span></pre>
2642
2704
  </div>
2643
2705
 
2644
2706
  </div>
@@ -2672,10 +2734,10 @@ is always rounded up.
2672
2734
  <div class="method-source-code"
2673
2735
  id="weeks-o-source">
2674
2736
  <pre>
2675
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 342</span>
2676
- 342: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weeksTo</span>(<span class="ruby-identifier">date</span>)
2677
- 343: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextWeek</span>)
2678
- 344: <span class="ruby-keyword kw">end</span></pre>
2737
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 346</span>
2738
+ 346: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weeksTo</span>(<span class="ruby-identifier">date</span>)
2739
+ 347: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextWeek</span>)
2740
+ 348: <span class="ruby-keyword kw">end</span></pre>
2679
2741
  </div>
2680
2742
 
2681
2743
  </div>
@@ -2708,10 +2770,10 @@ Return the year.
2708
2770
  <div class="method-source-code"
2709
2771
  id="year-source">
2710
2772
  <pre>
2711
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 411</span>
2712
- 411: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">year</span>
2713
- 412: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">year</span>
2714
- 413: <span class="ruby-keyword kw">end</span></pre>
2773
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 415</span>
2774
+ 415: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">year</span>
2775
+ 416: <span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">year</span>
2776
+ 417: <span class="ruby-keyword kw">end</span></pre>
2715
2777
  </div>
2716
2778
 
2717
2779
  </div>
@@ -2745,10 +2807,10 @@ is always rounded up.
2745
2807
  <div class="method-source-code"
2746
2808
  id="years-o-source">
2747
2809
  <pre>
2748
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 360</span>
2749
- 360: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">yearsTo</span>(<span class="ruby-identifier">date</span>)
2750
- 361: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextYear</span>)
2751
- 362: <span class="ruby-keyword kw">end</span></pre>
2810
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 364</span>
2811
+ 364: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">yearsTo</span>(<span class="ruby-identifier">date</span>)
2812
+ 365: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">:sameTimeNextYear</span>)
2813
+ 366: <span class="ruby-keyword kw">end</span></pre>
2752
2814
  </div>
2753
2815
 
2754
2816
  </div>
@@ -2785,16 +2847,16 @@ is always rounded up.
2785
2847
  <div class="method-source-code"
2786
2848
  id="count-ntervals-source">
2787
2849
  <pre>
2788
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 547</span>
2789
- 547: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">stepFunc</span>)
2790
- 548: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
2791
- 549: <span class="ruby-identifier">t1</span>, <span class="ruby-identifier">t2</span> = <span class="ruby-identifier">order</span>(<span class="ruby-identifier">date</span>)
2792
- 550: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t1</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">t2</span>
2793
- 551: <span class="ruby-identifier">t1</span> = <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">stepFunc</span>)
2794
- 552: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2795
- 553: <span class="ruby-keyword kw">end</span>
2796
- 554: <span class="ruby-identifier">i</span>
2797
- 555: <span class="ruby-keyword kw">end</span></pre>
2850
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 551</span>
2851
+ 551: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">stepFunc</span>)
2852
+ 552: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
2853
+ 553: <span class="ruby-identifier">t1</span>, <span class="ruby-identifier">t2</span> = <span class="ruby-identifier">order</span>(<span class="ruby-identifier">date</span>)
2854
+ 554: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t1</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">t2</span>
2855
+ 555: <span class="ruby-identifier">t1</span> = <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">stepFunc</span>)
2856
+ 556: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2857
+ 557: <span class="ruby-keyword kw">end</span>
2858
+ 558: <span class="ruby-identifier">i</span>
2859
+ 559: <span class="ruby-keyword kw">end</span></pre>
2798
2860
  </div>
2799
2861
 
2800
2862
  </div>
@@ -2825,10 +2887,10 @@ is always rounded up.
2825
2887
  <div class="method-source-code"
2826
2888
  id="last-ay-f-onth-source">
2827
2889
  <pre>
2828
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 557</span>
2829
- 557: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2830
- 558: <span class="ruby-identifier">month</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">leapYear?</span>(<span class="ruby-identifier">year</span>) <span class="ruby-operator">?</span> <span class="ruby-value">29</span> <span class="ruby-operator">:</span> <span class="ruby-constant">MON_MAX</span>[<span class="ruby-identifier">month</span>]
2831
- 559: <span class="ruby-keyword kw">end</span></pre>
2890
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 561</span>
2891
+ 561: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lastDayOfMonth</span>(<span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>)
2892
+ 562: <span class="ruby-identifier">month</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">leapYear?</span>(<span class="ruby-identifier">year</span>) <span class="ruby-operator">?</span> <span class="ruby-value">29</span> <span class="ruby-operator">:</span> <span class="ruby-constant">MON_MAX</span>[<span class="ruby-identifier">month</span>]
2893
+ 563: <span class="ruby-keyword kw">end</span></pre>
2832
2894
  </div>
2833
2895
 
2834
2896
  </div>
@@ -2859,17 +2921,17 @@ is always rounded up.
2859
2921
  <div class="method-source-code"
2860
2922
  id="leap-ear--source">
2861
2923
  <pre>
2862
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 561</span>
2863
- 561: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">leapYear?</span>(<span class="ruby-identifier">year</span>)
2864
- 562: <span class="ruby-keyword kw">case</span>
2865
- 563: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">year</span> <span class="ruby-operator">%</span> <span class="ruby-value">400</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2866
- 564: <span class="ruby-keyword kw">true</span>
2867
- 565: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">year</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2868
- 566: <span class="ruby-keyword kw">false</span>
2869
- 567: <span class="ruby-keyword kw">else</span>
2870
- 568: <span class="ruby-identifier">year</span> <span class="ruby-operator">%</span> <span class="ruby-value">4</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2871
- 569: <span class="ruby-keyword kw">end</span>
2872
- 570: <span class="ruby-keyword kw">end</span></pre>
2924
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 565</span>
2925
+ 565: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">leapYear?</span>(<span class="ruby-identifier">year</span>)
2926
+ 566: <span class="ruby-keyword kw">case</span>
2927
+ 567: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">year</span> <span class="ruby-operator">%</span> <span class="ruby-value">400</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2928
+ 568: <span class="ruby-keyword kw">true</span>
2929
+ 569: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">year</span> <span class="ruby-operator">%</span> <span class="ruby-value">100</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2930
+ 570: <span class="ruby-keyword kw">false</span>
2931
+ 571: <span class="ruby-keyword kw">else</span>
2932
+ 572: <span class="ruby-identifier">year</span> <span class="ruby-operator">%</span> <span class="ruby-value">4</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2933
+ 573: <span class="ruby-keyword kw">end</span>
2934
+ 574: <span class="ruby-keyword kw">end</span></pre>
2873
2935
  </div>
2874
2936
 
2875
2937
  </div>
@@ -2900,26 +2962,26 @@ is always rounded up.
2900
2962
  <div class="method-source-code"
2901
2963
  id="localtime-source">
2902
2964
  <pre>
2903
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 572</span>
2904
- 572: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">localtime</span>
2905
- 573: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@time</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@timeZone</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">@@tz</span>
2906
- 574:
2907
- 575: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">utc?</span>
2908
- 576: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@tz</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'UTC'</span>
2909
- 577: <span class="ruby-comment cmt"># @time is already in the right zone (UTC)</span>
2910
- 578: <span class="ruby-ivar">@time</span>
2911
- 579: <span class="ruby-keyword kw">else</span>
2912
- 580: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">localtime</span>
2913
- 581: <span class="ruby-keyword kw">end</span>
2914
- 582: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">@@tz</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'UTC'</span>
2915
- 583: <span class="ruby-comment cmt"># @time is not in UTC, so convert it to local time.</span>
2916
- 584: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">gmtime</span>
2917
- 585: <span class="ruby-keyword kw">else</span>
2918
- 586: <span class="ruby-comment cmt"># To convert a Time object from one local time to another, we need to</span>
2919
- 587: <span class="ruby-comment cmt"># conver to UTC first and then to the new local time.</span>
2920
- 588: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">gmtime</span>.<span class="ruby-identifier">localtime</span>
2921
- 589: <span class="ruby-keyword kw">end</span>
2922
- 590: <span class="ruby-keyword kw">end</span></pre>
2965
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 576</span>
2966
+ 576: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">localtime</span>
2967
+ 577: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@time</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@timeZone</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">@@tz</span>
2968
+ 578:
2969
+ 579: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">utc?</span>
2970
+ 580: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@tz</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'UTC'</span>
2971
+ 581: <span class="ruby-comment cmt"># @time is already in the right zone (UTC)</span>
2972
+ 582: <span class="ruby-ivar">@time</span>
2973
+ 583: <span class="ruby-keyword kw">else</span>
2974
+ 584: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">localtime</span>
2975
+ 585: <span class="ruby-keyword kw">end</span>
2976
+ 586: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">@@tz</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'UTC'</span>
2977
+ 587: <span class="ruby-comment cmt"># @time is not in UTC, so convert it to local time.</span>
2978
+ 588: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">gmtime</span>
2979
+ 589: <span class="ruby-keyword kw">else</span>
2980
+ 590: <span class="ruby-comment cmt"># To convert a Time object from one local time to another, we need to</span>
2981
+ 591: <span class="ruby-comment cmt"># conver to UTC first and then to the new local time.</span>
2982
+ 592: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">gmtime</span>.<span class="ruby-identifier">localtime</span>
2983
+ 593: <span class="ruby-keyword kw">end</span>
2984
+ 594: <span class="ruby-keyword kw">end</span></pre>
2923
2985
  </div>
2924
2986
 
2925
2987
  </div>
@@ -2950,10 +3012,10 @@ is always rounded up.
2950
3012
  <div class="method-source-code"
2951
3013
  id="order-source">
2952
3014
  <pre>
2953
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 543</span>
2954
- 543: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">order</span>(<span class="ruby-identifier">date</span>)
2955
- 544: <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">?</span> [ <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">date</span> ] <span class="ruby-operator">:</span> [ <span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">self</span> ]
2956
- 545: <span class="ruby-keyword kw">end</span></pre>
3015
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 547</span>
3016
+ 547: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">order</span>(<span class="ruby-identifier">date</span>)
3017
+ 548: <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">date</span> <span class="ruby-operator">?</span> [ <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">date</span> ] <span class="ruby-operator">:</span> [ <span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">self</span> ]
3018
+ 549: <span class="ruby-keyword kw">end</span></pre>
2957
3019
  </div>
2958
3020
 
2959
3021
  </div>
@@ -2984,106 +3046,106 @@ is always rounded up.
2984
3046
  <div class="method-source-code"
2985
3047
  id="parse-source">
2986
3048
  <pre>
2987
- <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 443</span>
2988
- 443: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">t</span>)
2989
- 444: <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">time</span>, <span class="ruby-identifier">zone</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'-'</span>, <span class="ruby-value">5</span>)
2990
- 445:
2991
- 446: <span class="ruby-comment cmt"># Check the year</span>
2992
- 447: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">year</span>
2993
- 448: <span class="ruby-identifier">year</span> = <span class="ruby-identifier">year</span>.<span class="ruby-identifier">to_i</span>
2994
- 449: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">year</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1970</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">year</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">2035</span>
2995
- 450: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Year #{year} out of range (1970 - 2035)&quot;</span>
2996
- 451: <span class="ruby-keyword kw">end</span>
2997
- 452: <span class="ruby-keyword kw">else</span>
2998
- 453: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Year not specified&quot;</span>
2999
- 454: <span class="ruby-keyword kw">end</span>
3000
- 455:
3001
- 456: <span class="ruby-comment cmt"># Check the month</span>
3002
- 457: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">month</span>
3003
- 458: <span class="ruby-identifier">month</span> = <span class="ruby-identifier">month</span>.<span class="ruby-identifier">to_i</span>
3004
- 459: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">month</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">month</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
3005
- 460: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Month #{month} out of range (1 - 12)&quot;</span>
3006
- 461: <span class="ruby-keyword kw">end</span>
3007
- 462: <span class="ruby-keyword kw">else</span>
3008
- 463: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Month not specified&quot;</span>
3009
- 464: <span class="ruby-keyword kw">end</span>
3010
- 465:
3011
- 466: <span class="ruby-comment cmt"># Check the day</span>
3012
- 467: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span>
3013
- 468: <span class="ruby-identifier">day</span> = <span class="ruby-identifier">day</span>.<span class="ruby-identifier">to_i</span>
3014
- 469: <span class="ruby-identifier">maxDay</span> = [ <span class="ruby-value">0</span>, <span class="ruby-value">31</span>, <span class="ruby-constant">Date</span>.<span class="ruby-identifier">gregorian_leap?</span>(<span class="ruby-identifier">year</span>) <span class="ruby-operator">?</span> <span class="ruby-value">29</span> <span class="ruby-operator">:</span> <span class="ruby-value">28</span>, <span class="ruby-value">31</span>, <span class="ruby-value">30</span>, <span class="ruby-value">31</span>,
3015
- 470: <span class="ruby-value">30</span>, <span class="ruby-value">31</span>, <span class="ruby-value">31</span>, <span class="ruby-value">30</span>, <span class="ruby-value">31</span>, <span class="ruby-value">30</span>, <span class="ruby-value">31</span> ]
3016
- 471: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">month</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">month</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">maxDay</span>[<span class="ruby-identifier">month</span>]
3017
- 472: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Day #{day} out of range (1 - #{maxDay[month]})&quot;</span>
3018
- 473: <span class="ruby-keyword kw">end</span>
3019
- 474: <span class="ruby-keyword kw">else</span>
3020
- 475: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Day not specified&quot;</span>
3021
- 476: <span class="ruby-keyword kw">end</span>
3022
- 477:
3023
- 478: <span class="ruby-comment cmt"># The time is optional. Will be expanded to 00:00:00.</span>
3024
- 479: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">time</span>
3025
- 480: <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">minute</span>, <span class="ruby-identifier">second</span> = <span class="ruby-identifier">time</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">':'</span>)
3049
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TjTime.rb, line 447</span>
3050
+ 447: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">t</span>)
3051
+ 448: <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">time</span>, <span class="ruby-identifier">zone</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'-'</span>, <span class="ruby-value">5</span>)
3052
+ 449:
3053
+ 450: <span class="ruby-comment cmt"># Check the year</span>
3054
+ 451: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">year</span>
3055
+ 452: <span class="ruby-identifier">year</span> = <span class="ruby-identifier">year</span>.<span class="ruby-identifier">to_i</span>
3056
+ 453: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">year</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1970</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">year</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">2035</span>
3057
+ 454: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Year #{year} out of range (1970 - 2035)&quot;</span>
3058
+ 455: <span class="ruby-keyword kw">end</span>
3059
+ 456: <span class="ruby-keyword kw">else</span>
3060
+ 457: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Year not specified&quot;</span>
3061
+ 458: <span class="ruby-keyword kw">end</span>
3062
+ 459:
3063
+ 460: <span class="ruby-comment cmt"># Check the month</span>
3064
+ 461: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">month</span>
3065
+ 462: <span class="ruby-identifier">month</span> = <span class="ruby-identifier">month</span>.<span class="ruby-identifier">to_i</span>
3066
+ 463: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">month</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">month</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
3067
+ 464: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Month #{month} out of range (1 - 12)&quot;</span>
3068
+ 465: <span class="ruby-keyword kw">end</span>
3069
+ 466: <span class="ruby-keyword kw">else</span>
3070
+ 467: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Month not specified&quot;</span>
3071
+ 468: <span class="ruby-keyword kw">end</span>
3072
+ 469:
3073
+ 470: <span class="ruby-comment cmt"># Check the day</span>
3074
+ 471: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span>
3075
+ 472: <span class="ruby-identifier">day</span> = <span class="ruby-identifier">day</span>.<span class="ruby-identifier">to_i</span>
3076
+ 473: <span class="ruby-identifier">maxDay</span> = [ <span class="ruby-value">0</span>, <span class="ruby-value">31</span>, <span class="ruby-constant">Date</span>.<span class="ruby-identifier">gregorian_leap?</span>(<span class="ruby-identifier">year</span>) <span class="ruby-operator">?</span> <span class="ruby-value">29</span> <span class="ruby-operator">:</span> <span class="ruby-value">28</span>, <span class="ruby-value">31</span>, <span class="ruby-value">30</span>, <span class="ruby-value">31</span>,
3077
+ 474: <span class="ruby-value">30</span>, <span class="ruby-value">31</span>, <span class="ruby-value">31</span>, <span class="ruby-value">30</span>, <span class="ruby-value">31</span>, <span class="ruby-value">30</span>, <span class="ruby-value">31</span> ]
3078
+ 475: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">month</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">month</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">maxDay</span>[<span class="ruby-identifier">month</span>]
3079
+ 476: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Day #{day} out of range (1 - #{maxDay[month]})&quot;</span>
3080
+ 477: <span class="ruby-keyword kw">end</span>
3081
+ 478: <span class="ruby-keyword kw">else</span>
3082
+ 479: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Day not specified&quot;</span>
3083
+ 480: <span class="ruby-keyword kw">end</span>
3026
3084
  481:
3027
- 482: <span class="ruby-comment cmt"># Check hour</span>
3028
- 483: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hour</span>
3029
- 484: <span class="ruby-identifier">hour</span> = <span class="ruby-identifier">hour</span>.<span class="ruby-identifier">to_i</span>
3030
- 485: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hour</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">hour</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">23</span>
3031
- 486: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Hour #{hour} out of range (0 - 23)&quot;</span>
3032
- 487: <span class="ruby-keyword kw">end</span>
3033
- 488: <span class="ruby-keyword kw">else</span>
3034
- 489: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Hour not specified&quot;</span>
3035
- 490: <span class="ruby-keyword kw">end</span>
3036
- 491:
3037
- 492: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minute</span>
3038
- 493: <span class="ruby-identifier">minute</span> = <span class="ruby-identifier">minute</span>.<span class="ruby-identifier">to_i</span>
3039
- 494: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minute</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">minute</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">59</span>
3040
- 495: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Minute #{minute} out of range (0 - 59)&quot;</span>
3041
- 496: <span class="ruby-keyword kw">end</span>
3042
- 497: <span class="ruby-keyword kw">else</span>
3043
- 498: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Minute not specified&quot;</span>
3044
- 499: <span class="ruby-keyword kw">end</span>
3045
- 500:
3046
- 501: <span class="ruby-comment cmt"># Check sencond. This value is optional and defaults to 0.</span>
3047
- 502: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">second</span>
3048
- 503: <span class="ruby-identifier">second</span> = <span class="ruby-identifier">second</span>.<span class="ruby-identifier">to_i</span>
3049
- 504: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">second</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">second</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">59</span>
3050
- 505: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Second #{second} out of range (0 - 59)&quot;</span>
3051
- 506: <span class="ruby-keyword kw">end</span>
3052
- 507: <span class="ruby-keyword kw">else</span>
3053
- 508: <span class="ruby-identifier">second</span> = <span class="ruby-value">0</span>
3054
- 509: <span class="ruby-keyword kw">end</span>
3055
- 510: <span class="ruby-keyword kw">else</span>
3056
- 511: <span class="ruby-identifier">hour</span> = <span class="ruby-identifier">minute</span> = <span class="ruby-identifier">second</span> = <span class="ruby-value">0</span>
3057
- 512: <span class="ruby-keyword kw">end</span>
3058
- 513:
3059
- 514: <span class="ruby-comment cmt"># The zone is optional and defaults to the current time zone.</span>
3060
- 515: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone</span>
3061
- 516: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">--</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">++</span>
3062
- 517: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Time zone adjustment must be prefixed by &quot;</span> <span class="ruby-operator">+</span>
3063
- 518: <span class="ruby-node">&quot;+ or -, not #{zone[0]}&quot;</span>
3064
- 519: <span class="ruby-keyword kw">end</span>
3065
- 520: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">5</span>
3066
- 521: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Time zone adjustment must use (+/-)HHMM format&quot;</span>
3067
- 522: <span class="ruby-keyword kw">end</span>
3068
- 523:
3069
- 524: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">utc</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">minute</span>, <span class="ruby-identifier">second</span>)
3070
- 525: <span class="ruby-identifier">sign</span> = <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">--</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
3071
- 526: <span class="ruby-identifier">tzHour</span> = <span class="ruby-identifier">zone</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>].<span class="ruby-identifier">to_i</span>
3072
- 527: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tzHour</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">tzHour</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
3073
- 528: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Time zone adjustment hour out of range &quot;</span> <span class="ruby-operator">+</span>
3074
- 529: <span class="ruby-node">&quot;(0 - 12) but is #{tzHour}&quot;</span>
3075
- 530: <span class="ruby-keyword kw">end</span>
3076
- 531: <span class="ruby-identifier">tzMinute</span> = <span class="ruby-identifier">zone</span>[<span class="ruby-value">3</span><span class="ruby-operator">..</span><span class="ruby-value">4</span>].<span class="ruby-identifier">to_i</span>
3077
- 532: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tzMinute</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">tzMinute</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">59</span>
3078
- 533: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Time zone adjustment minute out of range &quot;</span> <span class="ruby-operator">+</span>
3079
- 534: <span class="ruby-node">&quot;(0 - 59) but is #{tzMinute}&quot;</span>
3080
- 535: <span class="ruby-keyword kw">end</span>
3081
- 536: <span class="ruby-ivar">@time</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sign</span> * (<span class="ruby-identifier">tzHour</span> * <span class="ruby-value">3600</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tzMinute</span> * <span class="ruby-value">60</span>)
3082
- 537: <span class="ruby-ivar">@timeZone</span> = <span class="ruby-value str">'UTC'</span>
3083
- 538: <span class="ruby-keyword kw">else</span>
3084
- 539: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">mktime</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">minute</span>, <span class="ruby-identifier">second</span>)
3085
- 540: <span class="ruby-keyword kw">end</span>
3086
- 541: <span class="ruby-keyword kw">end</span></pre>
3085
+ 482: <span class="ruby-comment cmt"># The time is optional. Will be expanded to 00:00:00.</span>
3086
+ 483: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">time</span>
3087
+ 484: <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">minute</span>, <span class="ruby-identifier">second</span> = <span class="ruby-identifier">time</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">':'</span>)
3088
+ 485:
3089
+ 486: <span class="ruby-comment cmt"># Check hour</span>
3090
+ 487: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hour</span>
3091
+ 488: <span class="ruby-identifier">hour</span> = <span class="ruby-identifier">hour</span>.<span class="ruby-identifier">to_i</span>
3092
+ 489: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hour</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">hour</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">23</span>
3093
+ 490: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Hour #{hour} out of range (0 - 23)&quot;</span>
3094
+ 491: <span class="ruby-keyword kw">end</span>
3095
+ 492: <span class="ruby-keyword kw">else</span>
3096
+ 493: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Hour not specified&quot;</span>
3097
+ 494: <span class="ruby-keyword kw">end</span>
3098
+ 495:
3099
+ 496: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minute</span>
3100
+ 497: <span class="ruby-identifier">minute</span> = <span class="ruby-identifier">minute</span>.<span class="ruby-identifier">to_i</span>
3101
+ 498: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">minute</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">minute</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">59</span>
3102
+ 499: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Minute #{minute} out of range (0 - 59)&quot;</span>
3103
+ 500: <span class="ruby-keyword kw">end</span>
3104
+ 501: <span class="ruby-keyword kw">else</span>
3105
+ 502: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Minute not specified&quot;</span>
3106
+ 503: <span class="ruby-keyword kw">end</span>
3107
+ 504:
3108
+ 505: <span class="ruby-comment cmt"># Check sencond. This value is optional and defaults to 0.</span>
3109
+ 506: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">second</span>
3110
+ 507: <span class="ruby-identifier">second</span> = <span class="ruby-identifier">second</span>.<span class="ruby-identifier">to_i</span>
3111
+ 508: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">second</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">second</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">59</span>
3112
+ 509: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Second #{second} out of range (0 - 59)&quot;</span>
3113
+ 510: <span class="ruby-keyword kw">end</span>
3114
+ 511: <span class="ruby-keyword kw">else</span>
3115
+ 512: <span class="ruby-identifier">second</span> = <span class="ruby-value">0</span>
3116
+ 513: <span class="ruby-keyword kw">end</span>
3117
+ 514: <span class="ruby-keyword kw">else</span>
3118
+ 515: <span class="ruby-identifier">hour</span> = <span class="ruby-identifier">minute</span> = <span class="ruby-identifier">second</span> = <span class="ruby-value">0</span>
3119
+ 516: <span class="ruby-keyword kw">end</span>
3120
+ 517:
3121
+ 518: <span class="ruby-comment cmt"># The zone is optional and defaults to the current time zone.</span>
3122
+ 519: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone</span>
3123
+ 520: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">--</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">++</span>
3124
+ 521: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Time zone adjustment must be prefixed by &quot;</span> <span class="ruby-operator">+</span>
3125
+ 522: <span class="ruby-node">&quot;+ or -, not #{zone[0]}&quot;</span>
3126
+ 523: <span class="ruby-keyword kw">end</span>
3127
+ 524: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">5</span>
3128
+ 525: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Time zone adjustment must use (+/-)HHMM format&quot;</span>
3129
+ 526: <span class="ruby-keyword kw">end</span>
3130
+ 527:
3131
+ 528: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">utc</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">minute</span>, <span class="ruby-identifier">second</span>)
3132
+ 529: <span class="ruby-identifier">sign</span> = <span class="ruby-identifier">zone</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">--</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
3133
+ 530: <span class="ruby-identifier">tzHour</span> = <span class="ruby-identifier">zone</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>].<span class="ruby-identifier">to_i</span>
3134
+ 531: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tzHour</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">tzHour</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
3135
+ 532: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Time zone adjustment hour out of range &quot;</span> <span class="ruby-operator">+</span>
3136
+ 533: <span class="ruby-node">&quot;(0 - 12) but is #{tzHour}&quot;</span>
3137
+ 534: <span class="ruby-keyword kw">end</span>
3138
+ 535: <span class="ruby-identifier">tzMinute</span> = <span class="ruby-identifier">zone</span>[<span class="ruby-value">3</span><span class="ruby-operator">..</span><span class="ruby-value">4</span>].<span class="ruby-identifier">to_i</span>
3139
+ 536: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tzMinute</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">tzMinute</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">59</span>
3140
+ 537: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Time zone adjustment minute out of range &quot;</span> <span class="ruby-operator">+</span>
3141
+ 538: <span class="ruby-node">&quot;(0 - 59) but is #{tzMinute}&quot;</span>
3142
+ 539: <span class="ruby-keyword kw">end</span>
3143
+ 540: <span class="ruby-ivar">@time</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sign</span> * (<span class="ruby-identifier">tzHour</span> * <span class="ruby-value">3600</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tzMinute</span> * <span class="ruby-value">60</span>)
3144
+ 541: <span class="ruby-ivar">@timeZone</span> = <span class="ruby-value str">'UTC'</span>
3145
+ 542: <span class="ruby-keyword kw">else</span>
3146
+ 543: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">mktime</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">minute</span>, <span class="ruby-identifier">second</span>)
3147
+ 544: <span class="ruby-keyword kw">end</span>
3148
+ 545: <span class="ruby-keyword kw">end</span></pre>
3087
3149
  </div>
3088
3150
 
3089
3151
  </div>