现在要做一个项目的计划。项目被分为若干个任务,每个任务需要一定的天数完成,任务之间有依赖关系,此依赖关系是多对多的。请设计一个算法和相应的数据结构,在给定了任务分解、每个任务的完成天数、任务之间的依赖关系的条件下,能够计算出整个项目的完成时间。其他因素,如是否有资源、任务的最早/最晚开始时间、非工作日等因素均不需要考虑。