pragma solidity ^0.4.0; pragma experimental ABIEncoderV2; contract TimeSheet { struct WorkDay { uint256 projectId; uint256 day; uint256 month; uint256 year; uint256 hoursWorked; } struct WorkProject { uint256 projectId; } struct Month { string name; uint256 number; uint256 yearNumber; uint256 workingDays; } struct Client { string name; string fullAddress; string postCode; string VAT; } WorkProject[] public workprojects; Client[] public client; WorkDay[] public workedDays; Month[] monthTimesheets; function setMonthTimesheet(Month memory monthTimeshet) public { monthTimesheets[(monthTimeshet.year * 1000) + monthTimeshet.number] = monthTimeshet; } function getCurrentMonthWorkedDays(uint256 month, uint256 year) public returns (uint256 days_) { days_ = 0; for (uint p = 0; p < workedDays.length; p++) { if (workedDays[p].month == month && workedDays[p].year == year) { days_++; } } } }
0.4.18